* { box-sizing: border-box; }
body { font-family: -apple-system, "Segoe UI", "PingFang SC", "Hiragino Sans GB", "Microsoft YaHei", sans-serif; margin:0; color:#1f2328; background:#fff; line-height:1.6; }
a { color:#0969da; text-decoration:none; }
a:hover { text-decoration:underline; }
.container { max-width:1180px; margin:0 auto; padding:0 1.2rem; }
img { max-width:100%; height:auto; }
h1, h2, h3, h4 { color:#1f2328; }

.site-header { background:#0d1117; color:#fff; padding:.8rem 0; }
.site-header .container { display:flex; justify-content:space-between; align-items:center; flex-wrap:wrap; gap:1rem; }
.brand { font-size:1.3rem; font-weight:600; color:#fff; }
.primary-nav { display:flex; gap:1rem; flex-wrap:wrap; }
.primary-nav a { color:#c9d1d9; font-size:.95rem; }
.primary-nav a:hover { color:#fff; }

.site-main { min-height:60vh; }

.hero { background:#0d1117; color:#fff; padding:4rem 0; background-size:cover; background-position:center; }
.hero h1 { font-size:2.4rem; margin:0 0 .5rem; }
.hero p { font-size:1.1rem; opacity:.9; max-width:600px; }
.btn-cta { display:inline-block; margin-top:1rem; background:#fff; color:#0d1117; padding:.5rem 1.2rem; border-radius:5px; font-weight:600; }
.btn-cta:hover { background:#f0f0f0; text-decoration:none; }

.section-tabs { display:flex; gap:.4rem; flex-wrap:wrap; padding:1rem 0; border-bottom:1px solid #d0d7de; margin:1rem 0; }
.section-tabs a { padding:.3rem .8rem; background:#f6f8fa; border-radius:20px; color:#1f2328; }
.section-tabs a.active { background:#1f6feb; color:#fff; }

.card-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(260px, 1fr)); gap:1.2rem; margin:1rem 0 2rem; }
.card { background:#fff; border:1px solid #d0d7de; border-radius:6px; overflow:hidden; color:#1f2328; transition:box-shadow .15s; }
.card:hover { box-shadow:0 4px 12px rgba(0,0,0,.08); text-decoration:none; }
.card-img { height:160px; background-size:cover; background-position:center; background-color:#f6f8fa; }
.card-body { padding:1rem; }
.card-body h3 { margin:.2rem 0 .4rem; }

.news-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(300px, 1fr)); gap:1.2rem; margin:1rem 0 2rem; }
.news-card { background:#fff; border:1px solid #d0d7de; border-radius:6px; overflow:hidden; color:#1f2328; }
.news-card:hover { box-shadow:0 4px 12px rgba(0,0,0,.08); text-decoration:none; }
.news-img { height:200px; background-size:cover; background-position:center; background-color:#f6f8fa; }
.news-body { padding:1rem; }
.news-body h3, .news-body h4 { margin:.2rem 0 .4rem; }

.page-hero { background:#0d1117; color:#fff; padding:3rem 0; background-size:cover; background-position:center; }
.page-hero h1 { font-size:2.2rem; margin:0; }
.page-hero p { opacity:.9; }

.prose { max-width:780px; margin:2rem auto; line-height:1.75; }
.prose h2 { margin-top:2rem; }
.prose img { border-radius:6px; margin:1rem 0; }

.article { max-width:780px; padding-top:2rem; }
.article .lead { font-size:1.2rem; color:#656d76; }
.article .hero-img { width:100%; border-radius:6px; margin:1rem 0; }

.filters { display:flex; gap:.5rem; flex-wrap:wrap; margin:1rem 0; }
.filters input, .filters select, .filters button { padding:.4rem .7rem; border:1px solid #d0d7de; border-radius:5px; background:#fff; font-size:.9rem; }

table.t { width:100%; border-collapse:collapse; margin:1rem 0; background:#fff; border:1px solid #d0d7de; border-radius:6px; overflow:hidden; }
table.t th, table.t td { padding:.6rem 1rem; text-align:left; border-bottom:1px solid #d0d7de; }
table.t th { background:#f6f8fa; font-size:.85rem; color:#656d76; }

.site-footer { background:#0d1117; color:#c9d1d9; padding:3rem 0 2rem; margin-top:3rem; }
.site-footer h4 { color:#fff; margin:0 0 .5rem; }
.footer-grid { display:grid; grid-template-columns:repeat(auto-fit, minmax(220px, 1fr)); gap:2rem; margin-bottom:2rem; }
.footer-nav { display:flex; flex-direction:column; gap:.4rem; }
.footer-nav a { color:#c9d1d9; }
.footer-text { border-top:1px solid #21262d; padding-top:1rem; font-size:.85rem; color:#8b949e; }


/* === Cases grid === */
.scenario-filter { display:flex; gap:.5rem; flex-wrap:wrap; padding:1rem 0; border-bottom:1px solid #d0d7de; margin:1rem 0; }
.scenario-filter a { padding:.4rem 1rem; background:#f6f8fa; border-radius:20px; color:#1f2328; font-size:.92rem; }
.scenario-filter a.active { background:#1f6feb; color:#fff; }
.case-grid { display:grid; grid-template-columns:repeat(auto-fill, minmax(280px, 1fr)); gap:1.2rem; margin:1rem 0 2rem; }
.case-grid.featured { grid-template-columns:repeat(auto-fill, minmax(320px, 1fr)); }
.case-grid.small { grid-template-columns:repeat(auto-fill, minmax(240px, 1fr)); }
.case-card { display:block; background:#fff; border:1px solid #d0d7de; border-radius:8px; overflow:hidden; color:inherit; }
.case-card:hover { box-shadow:0 6px 18px rgba(0,0,0,.08); text-decoration:none; }
.case-hero { height:170px; background:#eaeef2 center/cover no-repeat; }
.case-hero.placeholder { display:flex; align-items:center; justify-content:center; color:#57606a; font-weight:600; }
.case-meta { padding:.6rem 1rem 0; display:flex; gap:.5rem; align-items:center; font-size:.85rem; }
.case-meta .badge { background:#ddf4ff; color:#0969da; padding:.15rem .55rem; border-radius:12px; font-size:.78rem; }
.case-meta .muted { color:#57606a; }
.case-card h3 { padding:.3rem 1rem; margin:0; font-size:1.05rem; }
.case-card p { padding:.3rem 1rem 1rem; color:#1f2328; font-size:.9rem; margin:0; }

.section-title { margin:2rem 0 .8rem; font-size:1.4rem; border-left:4px solid #1f6feb; padding-left:.6rem; }

/* Case detail */
.case-detail .case-block { margin:2rem 0; }
.case-detail .case-block h2 { margin-bottom:.6rem; color:#1f6feb; font-size:1.3rem; }
.case-detail .case-block .content { font-size:1rem; line-height:1.7; }
.case-meta-bar { display:flex; gap:1rem; flex-wrap:wrap; margin-top:1rem; color:#c9d1d9; }
.case-meta-bar span { font-size:.95rem; }
.case-gallery { display:grid; grid-template-columns:repeat(auto-fill, minmax(260px, 1fr)); gap:.6rem; margin:2rem 0; }
.case-gallery img { width:100%; border-radius:6px; }
.related-cases { padding:2rem 0; background:#f6f8fa; }
.related-cases h2 { margin-top:0; }
.breadcrumb a { color:inherit; text-decoration:underline; }

/* Page hero (uses case.hero_image) */
.page-hero { background:#0d1117; color:#fff; padding:3rem 0; background-size:cover; background-position:center; }
.page-hero h1 { font-size:2.2rem; margin:.5rem 0; color:#fff; }
.page-hero p.lead { font-size:1.1rem; max-width:780px; opacity:.9; }
.page-hero .breadcrumb { font-size:.85rem; opacity:.7; }
.page-hero .breadcrumb a { color:#c9d1d9; }

/* Inquiry form */
.inquiry-form-section { background:#f6f8fa; padding:2rem; border-radius:8px; margin:3rem 0; }
.inquiry-form-section h2 { margin-top:0; }
.inquiry-form { display:flex; flex-direction:column; gap:1rem; max-width:680px; }
.inquiry-form .form-row { display:grid; gap:.6rem; }
.inquiry-form .form-row.two { grid-template-columns:1fr 1fr; gap:.8rem; }
.inquiry-form label { font-weight:500; display:flex; flex-direction:column; gap:.3rem; }
.inquiry-form input, .inquiry-form textarea, .inquiry-form select {
  padding:.55rem .7rem; border:1px solid #d0d7de; border-radius:5px; font-size:.95rem; font-family:inherit;
}
.inquiry-form input:focus, .inquiry-form textarea:focus { border-color:#1f6feb; outline:none; box-shadow:0 0 0 2px rgba(31,111,235,.18); }
.inquiry-form .btn.primary { background:#1f6feb; color:#fff; padding:.7rem 1.2rem; border:none; border-radius:5px; cursor:pointer; font-size:1rem; align-self:flex-start; }
.inquiry-form .btn.primary:hover { background:#1858c4; }
.inquiry-form .muted { font-size:.85rem; color:#57606a; }

/* Contact page */
.contact-page .contact-grid { display:grid; grid-template-columns:1fr 2fr; gap:2rem; margin:2rem 0; }
.contact-info h2 { margin-top:0; font-size:1.4rem; color:#1f6feb; }
.contact-info .block { display:grid; grid-template-columns:80px 1fr; padding:.5rem 0; border-bottom:1px solid #d0d7de; }
.contact-info .block b { color:#57606a; font-size:.85rem; text-transform:uppercase; }
.contact-info .block span { word-wrap:break-word; }
.contact-form { background:#f6f8fa; padding:1.5rem; border-radius:8px; }
.contact-form .form-row { display:grid; gap:.6rem; margin-bottom:.8rem; }
.contact-form .form-row.two { grid-template-columns:1fr 1fr; }
.contact-form label { font-weight:500; display:flex; flex-direction:column; gap:.3rem; }
.contact-form input, .contact-form textarea, .contact-form select {
  padding:.55rem .7rem; border:1px solid #d0d7de; border-radius:5px; font-size:.95rem;
}
.contact-form .btn.primary { background:#1f6feb; color:#fff; padding:.7rem 1.2rem; border:none; border-radius:5px; cursor:pointer; }
.alert.ok { background:#dafbe1; color:#1a7f37; padding:1rem; border-radius:6px; margin:1rem 0; }
.alert.ok h2 { margin:0 0 .3rem; }

@media (max-width:760px) {
  .contact-page .contact-grid { grid-template-columns:1fr; }
  .inquiry-form .form-row.two { grid-template-columns:1fr; }
  .contact-form .form-row.two { grid-template-columns:1fr; }
}


/* === GorWay mirror-page overrides === */
/* Hide RR/legacy cookie consent + overlay modals that block page rendering */
[id*="cookie" i], [class*="cookie" i],
[id*="gdpr" i], [class*="gdpr" i],
[id*="consent" i], [class*="consent" i],
[id*="cmContainer" i], [class*="cm-container" i], [class*="cm_theme" i],
[id*="investis" i], [class*="investis" i],
div[id*="overlay" i], div[class*="overlay" i],
.cookie-banner, .cookie-notice, .gdpr-banner, .cookieConsent,
.cmc-banner, .cmc-container, #cmContainer, .cmContainer,
.cookiemgr, .cookieMgr,
body > div[style*="position: fixed"][style*="z-index: 9999"],
div[class*="modal"][style*="position: fixed"] {
    display: none !important;
    visibility: hidden !important;
    opacity: 0 !important;
    pointer-events: none !important;
}

/* === GorWay mirror-page layout === */
body { background: #fff !important; color: #1f2328 !important; font-family: -apple-system, "Segoe UI", "PingFang SC", "Microsoft YaHei", sans-serif !important; }
img { max-width: 100%; height: auto; display: block; }

/* Section wrappers */
.section, section { padding: 3rem 1rem; max-width: 1280px; margin: 0 auto; }
.section h1, .section h2, .section h3 { color: #0d1117; }

/* Hide duplicated nav / footer from mirror HTML since we have our own */
nav[role="navigation"]:not(.primary-nav):not(.primary-nav), header nav:not(.primary-nav), footer:not(.site-footer) { display: none !important; }

/* Generic text & link styling for mirror content */
a { color: #0969da; }
a:hover { color: #0550ae; }
p { line-height: 1.7; }

/* Hero section / banner */
.home-hero, .banner-image, .main-content { max-width: 1280px; margin: 0 auto; }

/* Card grids */
.row, .grid, .cards { display: grid; grid-template-columns: repeat(auto-fit, minmax(280px, 1fr)); gap: 1.5rem; padding: 1rem; }

/* Tables */
table { width: 100%; border-collapse: collapse; margin: 1rem 0; }
table th, table td { padding: 0.6rem 0.8rem; border: 1px solid #d0d7de; text-align: left; }
table th { background: #f6f8fa; font-weight: 600; }

/* Buttons */
button, .btn, input[type="submit"] { background: #0969da; color: #fff; border: none; padding: 0.5rem 1.2rem; border-radius: 5px; cursor: pointer; font-size: 1rem; }
button:hover, .btn:hover { background: #0550ae; }

/* Form */
input, textarea, select { padding: 0.5rem; border: 1px solid #d0d7de; border-radius: 5px; font-size: 1rem; width: 100%; margin: 0.3rem 0; }
label { display: block; margin: 0.5rem 0 0.2rem; font-weight: 500; }

/* GorWay placeholder marker (replaced RR images) */
.gorway-placeholder { background: #0a1a3a; color: #7fdbda; padding: 0.6rem 1rem; border-radius: 6px; display: inline-flex; align-items: center; gap: 0.5rem; margin: 0.5rem 0; }

/* Mobile responsive */
@media (max-width: 768px) {
    .section { padding: 1.5rem 1rem; }
    .row, .grid, .cards { grid-template-columns: 1fr; }
}


/* === GorWay home page sections === */
.hero-cta-row { display: flex; gap: 1rem; flex-wrap: wrap; margin-top: 1.5rem; }
.btn-cta-secondary { display: inline-block; background: rgba(255,255,255,.15); color: #fff; padding: .5rem 1.2rem; border-radius: 5px; font-weight: 600; border: 1px solid rgba(255,255,255,.5); }
.btn-cta-secondary:hover { background: rgba(255,255,255,.25); text-decoration: none; }

.industry-strip { background: #f6f8fa; padding: 2rem 0; }
.industry-strip h2 { margin: 0 0 1rem; }
.industry-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(180px, 1fr)); gap: .8rem; }
.industry-card { background: #fff; padding: 1rem 1.2rem; border-radius: 6px; border: 1px solid #d0d7de; display: flex; justify-content: space-between; align-items: center; color: #1f2328; transition: all .15s; }
.industry-card:hover { background: #0d1117; color: #fff; text-decoration: none; transform: translateY(-2px); box-shadow: 0 4px 12px rgba(0,0,0,.1); }
.industry-card-label { font-weight: 600; }
.industry-card-arrow { opacity: .5; }

.featured-products, .recent-cases, .latest-news { padding: 3rem 0; }
.see-more { text-align: center; margin-top: 1.5rem; }
.see-more a { color: #0969da; font-weight: 600; }

.product-card { display: flex; flex-direction: column; }
.card-img { height: 180px; background-size: cover; background-position: center; background-color: #eaeef2; }

.why-strip { background: #0d1117; color: #fff; padding: 3rem 0; }
.why-strip h2 { color: #fff; }
.why-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(240px, 1fr)); gap: 1.5rem; }
.why-item h3 { color: #fbbf24; margin-top: 0; }
.why-item p { color: #c9d1d9; }

.cta-strip { background: #f7f9fb; color: #0a1a3a; padding: 3rem 0; text-align: center; border-top: 1px solid #e6ebef; }
.cta-strip h2, .cta-strip p { color: #0a1a3a; }

.page-hero { background: #ffffff; color: #0a1a3a; padding: 3rem 0 2rem; border-bottom: 1px solid #e6ebef; }
.page-hero h1 { color: #0a1a3a; margin: 0 0 .5rem; }
.page-hero .lead { color: #3d4a57; max-width: 720px; }

/* === GorWay product detail page === */
.product-detail-hero { background: #ffffff; color: #0a1a3a; padding: 3rem 0 2rem; border-bottom: 1px solid #e6ebef; }
.product-detail-hero .breadcrumbs { color: #57606a; font-size: .9rem; margin-bottom: 1rem; }
.product-detail-hero .breadcrumbs a { color: #0969da; }
.product-detail-grid { display: grid; grid-template-columns: 1fr 1fr; gap: 2rem; align-items: center; }
.product-detail-image img { max-width: 100%; border-radius: 8px; box-shadow: 0 4px 24px rgba(0,0,0,.3); }
.product-detail-meta h1 { color: #fff; margin-top: 0; font-size: 2rem; }
.product-detail-subtitle { color: #fbbf24; font-size: 1.2rem; }
.product-detail-summary { color: #c9d1d9; font-size: 1.05rem; }
.product-highlights { color: #7fdbda; padding-left: 1.2rem; }
.product-highlights li { margin: .3rem 0; }
.product-tags { display: flex; flex-wrap: wrap; gap: .4rem; margin-top: 1rem; }
.product-tags .tag { background: rgba(255,255,255,.15); color: #fff; padding: .2rem .8rem; border-radius: 20px; font-size: .85rem; }

.product-specs { padding: 2.5rem 0; }
.product-specs h2 { margin-bottom: 1rem; }
.specs-table { width: 100%; border-collapse: collapse; }
.specs-table th, .specs-table td { padding: .6rem .8rem; border-bottom: 1px solid #d0d7de; text-align: left; vertical-align: top; }
.specs-table th { background: #f6f8fa; width: 200px; font-weight: 600; }

.product-inquiry { background: #f6f8fa; padding: 3rem 0; }
.product-inquiry h2 { margin-top: 0; }
.product-inquiry .lead { color: #57606a; margin-bottom: 1.5rem; }
.inquiry-form { background: #fff; padding: 2rem; border-radius: 8px; box-shadow: 0 2px 12px rgba(0,0,0,.06); }
.inquiry-form .form-row { display: grid; grid-template-columns: 1fr 1fr; gap: 1rem; }
.inquiry-form label { display: block; font-weight: 500; margin-top: .8rem; }
.inquiry-form input, .inquiry-form textarea { width: 100%; padding: .6rem; border: 1px solid #d0d7de; border-radius: 5px; font-size: 1rem; margin-top: .3rem; box-sizing: border-box; }
.inquiry-form .form-actions { margin-top: 1rem; display: flex; gap: 1rem; }
.btn-secondary { display: inline-block; background: #f6f8fa; color: #1f2328; padding: .5rem 1.2rem; border-radius: 5px; border: 1px solid #d0d7de; }
.btn-secondary:hover { background: #eaeef2; text-decoration: none; }
.btn-primary { display: inline-block; background: #0969da; color: #fff !important; padding: .6rem 1.4rem; border-radius: 5px; border: none; font-weight: 600; cursor: pointer; font-size: 1rem; }
.btn-primary:hover { background: #0550ae; text-decoration: none; }

.alert { padding: 1rem 1.2rem; border-radius: 6px; margin-bottom: 1rem; }
.alert-success { background: #dafbe1; color: #1a7f37; border: 1px solid #b6f0c2; }
.alert-error { background: #ffebe9; color: #cf222e; border: 1px solid #ffc1b9; }

.product-related { padding: 2.5rem 0; }

@media (max-width: 768px) {
    .product-detail-grid { grid-template-columns: 1fr; }
    .inquiry-form .form-row { grid-template-columns: 1fr; }
}

.products-grid-section { padding: 2.5rem 0; }
.products-grid { display: grid; grid-template-columns: repeat(auto-fit, minmax(260px, 1fr)); gap: 1.5rem; }
.products-cta { background: #0d1117; color: #fff; padding: 3rem 0; text-align: center; }
.products-cta h2, .products-cta p { color: #fff; }
.products-cta .btn-primary { margin-top: 1rem; }

.product-image { position: relative; height: 180px; background: #f6f8fa; overflow: hidden; }
.product-image img { width: 100%; height: 100%; object-fit: cover; }
.featured-badge { position: absolute; top: .5rem; left: .5rem; background: #fbbf24; color: #0d1117; padding: .15rem .6rem; border-radius: 12px; font-size: .75rem; font-weight: 700; }

.product-body { padding: 1rem; }
.product-body h2, .product-body h3 { margin: 0 0 .4rem; font-size: 1.05rem; line-height: 1.4; }
.product-subtitle { color: #57606a; font-size: .9rem; margin: .2rem 0; }
.product-summary { color: #1f2328; font-size: .92rem; line-height: 1.5; }
.cta-arrow { color: #0969da; font-size: .85rem; font-weight: 600; }


/* === Hero title color fix === */
.hero, .page-hero, .product-detail-hero { color: #fff; }
.hero h1, .hero p, .page-hero h1, .page-hero p, .page-hero .lead {
    color: #fff !important;
}
.hero p { opacity: .92; max-width: 720px; }


/* === GorWay primary nav visibility fix === */
header.site-header nav.primary-nav { display: flex !important; }
.primary-nav a { color: #c9d1d9 !important; padding: 0.4rem 0.7rem; border-radius: 4px; transition: background .15s; }
.primary-nav a:hover, .primary-nav a[aria-current="page"] { color: #fbbf24 !important; background: rgba(251,191,36,.1); }


/* === Hero with background image === */
.hero {
    position: relative;
    background: #0a1a3a url('/static/assets/gorway/home-hero.svg') center/cover no-repeat !important;
    padding: 6rem 0 5rem !important;
    overflow: hidden;
}
.hero::before {
    content: '';
    position: absolute;
    inset: 0;
    background: linear-gradient(135deg, rgba(10,26,58,.85), rgba(10,122,138,.6));
    pointer-events: none;
}
.hero .container { position: relative; z-index: 2; }

/* GorWay: align CMS Jinja pages (cases/contact/products) nav with the RR-mirror home page style */
.site-header { background: #ffffff !important; color: #0a1a3a !important; padding: 0 !important; border-bottom: 1px solid #e6ebef !important; box-shadow: 0 1px 3px rgba(10,26,58,.06) !important; position: relative !important; z-index: 10 !important; }
.site-header .container.header-inner { max-width: none !important; width: 100% !important; margin: 0 !important; padding: 0 24px !important; height: 100px !important; display: flex !important; flex-direction: row !important; justify-content: space-between !important; align-items: center !important; gap: 24px !important; box-sizing: border-box !important; }
.site-header .brand { display: flex !important; align-items: center !important; flex: 0 0 auto !important; width: auto !important; padding: 0 !important; margin: 0 !important; line-height: 0 !important; }
.site-header .brand img { width: 118px !important; max-width: 118px !important; height: 120px !important; display: block !important; }
.site-header .brand .brand-text { display: none !important; }
nav.primary-nav { display: flex !important; align-items: center !important; justify-content: flex-end !important; gap: 0 !important; height: 64px !important; padding: 0 !important; margin: 0 !important; flex: 1 1 auto !important; }
nav.primary-nav a { color: #0a1a3a !important; font-size: 15px !important; line-height: 1 !important; padding: 0 14px !important; margin: 0 !important; height: 64px !important; display: inline-flex !important; align-items: center !important; background: transparent !important; border-radius: 0 !important; font-weight: 400 !important; transition: color 120ms ease-in-out !important; box-shadow: none !important; }
nav.primary-nav a:hover, nav.primary-nav a.active, nav.primary-nav a[aria-current="page"] { color: #0a1a3a !important; background: transparent !important; text-decoration: underline; }
.site-header .lang-switch { display: none !important; }

/* GorWay: hero banner style for /cases and other CMS pages (mirrors the home page fw-banner) */
.fw-banner { position: relative; width: 100%; min-height: 480px; display: flex; align-items: center; overflow: hidden; }
.fw-banner-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transform: scale(1.02); z-index: 1; }
.fw-banner-overlay { position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,26,58,.85) 0%, rgba(10,26,58,.55) 60%, rgba(10,26,58,.25) 100%); z-index: 2; }
.fw-banner-text { position: relative; z-index: 3; max-width: 1280px; margin: 0 auto; padding: 80px 24px; color: #ffffff; width: 100%; box-sizing: border-box; }
.fw-banner-text h1 { font-size: 56px; line-height: 1.05; font-weight: 600; margin: 0 0 18px; letter-spacing: -.02em; }
.fw-banner-lead { font-size: 18px; line-height: 1.6; max-width: 720px; margin: 0 0 32px; opacity: .92; }
.btn-cta { display: inline-block; padding: 14px 32px; background: transparent; color: #fff; border: 2px solid #fff; border-radius: 999px; font-weight: 600; font-size: 14px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; transition: background .2s, color .2s; }
.btn-cta:hover { background: #ffffff; color: #0a1a3a; }

/* Scenarios grid */
.cases-scenarios { padding: 64px 0; background: #f7f9fb; }
.scenario-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 20px; margin-top: 24px; }
.scenario-card { position: relative; display: block; min-height: 220px; border-radius: 6px; overflow: hidden; text-decoration: none; color: #fff; transition: transform .25s, box-shadow .25s; }
.scenario-card:hover { transform: translateY(-4px); box-shadow: 0 12px 28px rgba(10,26,58,.18); }
.scenario-card-bg { position: absolute; inset: 0; background-size: cover; background-position: center; transition: transform .4s; }
.scenario-card:hover .scenario-card-bg { transform: scale(1.05); }
.scenario-card-bg.scenario-default-1 { background: linear-gradient(135deg, #2d4a6b 0%, #0a1a3a 100%); }
.scenario-card-bg.scenario-default-2 { background: linear-gradient(135deg, #5b3b78 0%, #2d1a4e 100%); }
.scenario-card-bg.scenario-default-3 { background: linear-gradient(135deg, #1f5b6b 0%, #0a2a3a 100%); }
.scenario-card-bg.scenario-default-4 { background: linear-gradient(135deg, #6b5123 0%, #3a2a13 100%); }
.scenario-card-bg.scenario-default-5 { background: linear-gradient(135deg, #3a5b3a 0%, #1a3a1a 100%); }
.scenario-card-bg.scenario-default-6 { background: linear-gradient(135deg, #5b3a4a 0%, #2a1a23 100%); }
.scenario-card-bg.scenario-default-7 { background: linear-gradient(135deg, #2a3a5b 0%, #131a3a 100%); }
.scenario-card-bg.scenario-default-8 { background: linear-gradient(135deg, #4a3a5b 0%, #231a3a 100%); }
.scenario-card-shade { position: absolute; inset: 0; background: linear-gradient(180deg, rgba(10,26,58,.1) 0%, rgba(10,26,58,.85) 100%); z-index: 2; }
.scenario-card-text { position: relative; z-index: 3; padding: 20px 22px; display: flex; flex-direction: column; justify-content: flex-end; min-height: 220px; box-sizing: border-box; }
.scenario-card-text h3 { font-size: 20px; font-weight: 600; margin: 0 0 8px; color: #fff; }
.scenario-card-text p { font-size: 13px; line-height: 1.5; margin: 0 0 14px; opacity: .85; color: #fff; }
.scenario-card-text .cta-arrow { font-size: 13px; font-weight: 600; letter-spacing: .08em; color: #7fdbda; }

/* Featured cases list */
.cases-list { padding: 64px 0; background: #ffffff; }
.cases-card-grid { display: grid; grid-template-columns: repeat(2, 1fr); gap: 24px; margin-top: 24px; }
.cases-card { display: flex; flex-direction: column; border: 1px solid #e6ebef; border-radius: 6px; overflow: hidden; background: #fff; text-decoration: none; color: inherit; transition: transform .25s, box-shadow .25s, border-color .25s; }
.cases-card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(10,26,58,.12); border-color: #c9d1d9; }
.cases-card-img { width: 100%; height: 220px; background-size: cover; background-position: center; background-color: #e6ebef; }
.cases-card-body { padding: 24px; }
.cases-card-body small.muted { display: block; font-size: 12px; color: #6b7884; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.cases-card-body h3 { font-size: 20px; font-weight: 600; margin: 0 0 12px; color: #0a1a3a; }
.cases-card-body p { font-size: 15px; line-height: 1.55; color: #3d4a57; margin: 0 0 16px; }
.cases-card-client { font-size: 13px; color: #6b7884; }
.cases-card-client strong { color: #0a1a3a; }

/* Bottom light signpost */
.fw-signpost-light { padding: 80px 24px; background: #f7f9fb; text-align: center; }
.fw-signpost-light h2 { font-size: 32px; font-weight: 600; color: #0a1a3a; margin: 0 0 14px; }
.fw-signpost-light p { font-size: 16px; line-height: 1.6; color: #3d4a57; max-width: 720px; margin: 0 auto 28px; }
.fw-signpost-light .btn-cta { color: #0a1a3a; border-color: #0a1a3a; }
.fw-signpost-light .btn-cta:hover { background: #0a1a3a; color: #ffffff; }

/* Responsive */
@media (max-width: 1024px) { .scenario-grid { grid-template-columns: repeat(2, 1fr); } .cases-card-grid { grid-template-columns: 1fr; } }
@media (max-width: 600px) { .fw-banner-text h1 { font-size: 40px; } .scenario-grid { grid-template-columns: 1fr; } }


/* === GorWay full-width banner (used by /cases hero) === */
.full-width-banner { position: relative; width: 100%; margin: 0; padding: 0; }
.full-width-banner-inner { position: relative; width: 100%; min-height: 560px; background-size: cover; background-position: center; background-repeat: no-repeat; display: flex; align-items: center; overflow: hidden; }
.full-width-banner-inner::before { content: ''; position: absolute; inset: 0; background: linear-gradient(90deg, rgba(10,26,58,.85) 0%, rgba(10,26,58,.55) 60%, rgba(10,26,58,.25) 100%); z-index: 1; }
.full-width-banner-main { position: relative; z-index: 2; width: 100%; max-width: 1280px; margin: 0 auto; padding: 60px 24px; box-sizing: border-box; }
.full-width-banner-content { color: #ffffff; max-width: 640px; }
.full-width-banner-content p { font-size: 48px; line-height: 1.1; font-weight: 600; margin: 0 0 24px; letter-spacing: -.01em; color: #ffffff; }
.full-width-banner-content .button a.module-cta-link { display: inline-block; padding: 14px 32px; background: transparent; color: #ffffff; border: 2px solid #ffffff; border-radius: 999px; font-weight: 600; font-size: 13px; letter-spacing: .12em; text-transform: uppercase; text-decoration: none; transition: background .2s, color .2s; }
.full-width-banner-content .button a.module-cta-link:hover { background: #ffffff; color: #0a1a3a; }
.box6-text-middle-left { text-align: left; }

.new-banner-mobi.hide { display: none; }
.banner-down-arrow { display: none; }

/* Bottom thumbnail captions (same look as home page) */
.slider.slider-nav.slider-nav-thumbnails.bottom-thumb-section { display: flex; flex-wrap: wrap; gap: 0; padding: 0; background: rgba(10,26,58,.92); }
.slider-nav-thumbnails .thumb-box { flex: 1 1 12.5%; min-width: 150px; padding: 18px 20px; border-right: 1px solid rgba(255,255,255,.08); box-sizing: border-box; }
.slider-nav-thumbnails .thumb-box:last-child { border-right: none; }
.slider-nav-thumbnails .thumb-text { font-size: 14px; line-height: 1.4; color: #ffffff; margin: 0; font-weight: 500; letter-spacing: .01em; }
.slider-nav-thumbnails .thumb-text.slick-active { color: #ffffff; }

/* Below-hero CMS sections (scenarios, cards) */
.industry-strip { padding: 64px 0; background: #f7f9fb; }
.industry-strip h2 { font-size: 28px; font-weight: 600; color: #0a1a3a; margin: 0 0 24px; padding-left: 16px; border-left: 4px solid #e1e4e8; }
.industry-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 16px; }
.industry-card { display: flex; align-items: center; justify-content: space-between; padding: 22px 24px; background: #ffffff; border: 1px solid #e6ebef; border-radius: 4px; color: #0a1a3a; text-decoration: none; transition: all .2s; }
.industry-card:hover { border-color: #c9d1d9; transform: translateY(-2px); box-shadow: 0 6px 14px rgba(10,26,58,.08); }
.industry-card-label { font-size: 15px; font-weight: 500; }
.industry-card-arrow { color: #6b7884; font-size: 16px; }

.featured-cases { padding: 64px 0; background: #ffffff; }
.featured-cases h2 { font-size: 28px; font-weight: 600; color: #0a1a3a; margin: 0 0 24px; padding-left: 16px; border-left: 4px solid #e1e4e8; }
.featured-cases .card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.featured-cases .card { display: flex; flex-direction: column; border: 1px solid #e6ebef; border-radius: 6px; overflow: hidden; text-decoration: none; color: inherit; transition: all .25s; }
.featured-cases .card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(10,26,58,.12); border-color: #c9d1d9; }
.featured-cases .card-img { width: 100%; height: 200px; background-size: cover; background-position: center; background-color: #e6ebef; }
.featured-cases .card-body { padding: 20px 22px; }
.featured-cases .card-body small.muted { display: block; font-size: 12px; color: #6b7884; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 8px; }
.featured-cases .card-body h3 { font-size: 18px; font-weight: 600; margin: 0 0 10px; color: #0a1a3a; }
.featured-cases .card-body p { font-size: 14px; line-height: 1.5; color: #3d4a57; margin: 0 0 14px; }
.featured-cases .card-meta { font-size: 12px; color: #6b7884; }
.featured-cases .card-meta strong { color: #0a1a3a; }

@media (max-width: 1024px) { .industry-grid { grid-template-columns: repeat(2, 1fr); } .featured-cases .card-grid { grid-template-columns: repeat(2, 1fr); } .slider-nav-thumbnails .thumb-box { flex: 1 1 25%; } }
@media (max-width: 600px) { .industry-grid { grid-template-columns: 1fr; } .featured-cases .card-grid { grid-template-columns: 1fr; } .full-width-banner-inner { min-height: 420px; } .full-width-banner-content p { font-size: 32px; } .slider-nav-thumbnails .thumb-box { flex: 1 1 50%; } }


/* === Hero 4-slide slideshow (home page) === */
#home-hero-slider { position: relative; min-height: 580px; }
.hero-slide {
  position: absolute; inset: 0; opacity: 0; z-index: 1;
  transition: opacity 1s ease-in-out;
  display: flex; align-items: center;
}
.hero-slide:first-child { opacity: 1; z-index: 2; }
.hero-slide .full-width-banner-content p { font-size: 48px; line-height: 1.1; font-weight: 600; margin: 0 0 14px; color: #fff; letter-spacing: -.01em; }
.hero-slide-sub { font-size: 18px !important; font-weight: 400 !important; opacity: .92; max-width: 640px; }
.hero-slide-nav { position: absolute; left: 0; right: 0; bottom: 0; z-index: 5; display: flex; background: rgba(10,26,58,.92); border-top: 1px solid rgba(255,255,255,.08); }
.hero-slide-dot {
  flex: 1; padding: 18px 22px; background: transparent; border: none;
  border-right: 1px solid rgba(255,255,255,.08); color: #fff;
  font-size: 14px; font-weight: 500; text-align: left;
  cursor: pointer; transition: background .2s;
}
.hero-slide-dot:last-child { border-right: none; }
.hero-slide-dot:hover { background: rgba(255,255,255,.06); }
.hero-slide-dot.active { background: rgba(255,255,255,.18); color: #ffffff; font-weight: 600; }

/* === Home sections === */
.industry-strip, .featured-products, .why-strip, .cases-strip, .news-strip { padding: 64px 0; }
.industry-strip { background: #f7f9fb; }
.featured-products, .cases-strip, .news-strip { background: #ffffff; }
.why-strip { background: #f7f9fb; color: #1f2328; }
.industry-strip h2, .featured-products h2, .cases-strip h2, .news-strip h2 {
  font-size: 28px; font-weight: 600; color: #0a1a3a; margin: 0 0 24px;
  padding-left: 16px; border-left: 4px solid #e1e4e8;
}
.why-strip h2 { font-size: 28px; font-weight: 600; color: #0a1a3a; margin: 0 0 24px; padding-left: 16px; border-left: 4px solid #e1e4e8; }
.why-grid { display: grid; grid-template-columns: repeat(4, 1fr); gap: 24px; }
.why-item h3 { font-size: 18px; font-weight: 600; color: #0a1a3a; margin: 0 0 10px; }
.why-item p { font-size: 14px; line-height: 1.6; color: #3d4a57; margin: 0; }

.card-grid { display: grid; grid-template-columns: repeat(3, 1fr); gap: 24px; }
.card { display: flex; flex-direction: column; border: 1px solid #e6ebef; border-radius: 6px; overflow: hidden; background: #fff; text-decoration: none; color: inherit; transition: all .25s; }
.card:hover { transform: translateY(-3px); box-shadow: 0 10px 24px rgba(10,26,58,.12); border-color: #c9d1d9; text-decoration: none; }
.card-img { width: 100%; height: 200px; background: #e6ebef center/cover no-repeat; }
.card-body { padding: 18px 20px; }
.card-body small.muted { display: block; font-size: 11px; color: #6b7884; text-transform: uppercase; letter-spacing: .08em; margin-bottom: 6px; }
.card-body h3 { font-size: 17px; font-weight: 600; margin: 0 0 8px; color: #0a1a3a; }
.card-body p { font-size: 14px; line-height: 1.5; color: #3d4a57; margin: 0 0 12px; }
.card-cta { font-size: 13px; color: #0969da; font-weight: 600; }

.cta-strip { padding: 60px 24px; background: #ffffff; color: #1f2328; text-align: center; border-top: 1px solid #e6ebef; }
.cta-strip h2 { font-size: 28px; font-weight: 600; margin: 0 0 14px; color: #0a1a3a; }
.cta-strip p { font-size: 15px; line-height: 1.6; margin: 0 auto 28px; max-width: 640px; color: #3d4a57; }
.cta-strip .btn-cta { background: transparent; color: #0a1a3a; border: 2px solid #0a1a3a; }
.cta-strip .btn-cta:hover { background: #0a1a3a; color: #ffffff; border-color: #0a1a3a; }

@media (max-width: 1024px) { .why-grid { grid-template-columns: repeat(2, 1fr); } .card-grid { grid-template-columns: repeat(2, 1fr); } .hero-slide-nav { flex-wrap: wrap; } }
@media (max-width: 600px) { .why-grid { grid-template-columns: 1fr; } .card-grid { grid-template-columns: 1fr; } .hero-slide .full-width-banner-content p { font-size: 28px; } .hero-slide-sub { font-size: 14px !important; } .hero-slide-dot { flex: 1 1 50%; padding: 12px 14px; font-size: 12px; } }
