/* ==========================================================================
   theme-fix.css — standardized typography & breadcrumb sizing
   Loaded after app.min.css so these rules win at equal specificity.
   ========================================================================== */

/* ---------- Base heading scale (was h1:80 / h2:48 / h3:30 / h6:22) ---------- */

h1,
.h1 {
    font-size: 44px;
    line-height: 1.2em;
}

@media (max-width: 1199px) {
    h1,
    .h1 {
        font-size: 38px;
    }
}

@media (max-width: 991px) {
    h1,
    .h1 {
        font-size: 34px;
    }
}

@media (max-width: 767px) {
    h1,
    .h1 {
        font-size: 30px;
    }
}

h2,
.h2 {
    font-size: 36px;
    line-height: 1.25em;
}

@media (max-width: 991px) {
    h2,
    .h2 {
        font-size: 30px;
    }
}

@media (max-width: 767px) {
    h2,
    .h2 {
        font-size: 26px;
    }
}

h3,
.h3 {
    font-size: 24px;
    line-height: 1.3em;
}

@media (max-width: 767px) {
    h3,
    .h3 {
        font-size: 22px;
    }
}

h4,
.h4 {
    font-size: 20px;
    line-height: 1.4em;
}

h5,
.h5 {
    font-size: 18px;
    line-height: 1.4em;
}

h6,
.h6 {
    font-size: 16px;
    line-height: 1.5em;
}

/* Section titles that carry their own h2 media sizes in the theme */
@media (max-width: 1199px) {
    .optech-default-content h2 {
        font-size: 32px;
    }
}

@media (max-width: 767px) {
    .optech-default-content h2 {
        font-size: 26px;
    }
}

/* ---------- Oversized display blocks (were 64px / 48px) ---------- */

.optech-footer-cta-content h2,
.optech-cta-content h2 {
    font-size: 36px;
}

@media (max-width: 767px) {
    .optech-footer-cta-content h2,
    .optech-cta-content h2 {
        font-size: 28px;
    }
}

.optech-pricing-price h2 {
    font-size: 40px;
}

.optech-counter-number,
.optech-counter-number3 {
    font-size: 36px;
    letter-spacing: -1px;
}

/* ---------- Section vertical rhythm (was 130px top/bottom) ---------- */

.optech-section-padding {
    padding: 90px 0;
}

.optech-section-padding2,
.optech-section-padding4 {
    padding: 90px 0 66px;
}

.optech-section-padding5 {
    padding: 90px 0 50px;
}

.optech-section-padding-top {
    padding: 90px 0 0;
}

.optech-section-title {
    padding-bottom: 40px;
}

@media (max-width: 991px) {
    .optech-section-padding {
        padding: 80px 0;
    }

    .optech-section-padding2,
    .optech-section-padding4 {
        padding: 80px 0 56px;
    }

    .optech-section-padding5 {
        padding: 80px 0 40px;
    }

    .optech-section-padding-top {
        padding: 80px 0 0;
    }
}

@media (max-width: 767px) {
    .optech-section-padding {
        padding: 60px 0;
    }

    .optech-section-padding2,
    .optech-section-padding4 {
        padding: 60px 0 36px;
    }

    .optech-section-padding5 {
        padding: 60px 0 25px;
    }

    .optech-section-padding-top {
        padding: 60px 0 0;
    }

    .optech-section-title {
        padding-bottom: 32px;
    }
}

/* ---------- Breadcrumb banner (was padding: 310px 0 160px, full-page look) ----------
   Header is position:fixed and sits over the banner top.
   Desktop header = topbar (~54px) + nav (~89px) = ~143px, so top padding is
   header clearance + the same visual gap as the bottom padding — this keeps
   the title vertically centered in the visible strip. */

.optech-breadcrumb {
    padding: 205px 0 65px;
}

@media (max-width: 991px) {
    /* topbar hidden below 991px, header is only the ~80px nav */
    .optech-breadcrumb {
        padding: 135px 0 55px;
    }
}

@media (max-width: 767px) {
    .optech-breadcrumb {
        padding: 128px 0 50px;
    }
}

@media (max-width: 575px) {
    .optech-breadcrumb {
        padding: 120px 0 45px;
    }
}

/* ---------- 404 page (was padding: 330px 0 130px) — same balance as breadcrumb ---------- */

.optech-errors-section {
    padding: 210px 0 90px;
}

@media (max-width: 991px) {
    .optech-errors-section {
        padding: 140px 0 70px;
    }
}

@media (max-width: 767px) {
    .optech-errors-section {
        padding: 120px 0 60px;
    }
}

/* ---------- Home hero (was padding: 260px 0 150px) ---------- */

.optech-hero-section {
    padding: 225px 0 110px;
}

@media (max-width: 991px) {
    .optech-hero-section {
        padding: 160px 0 80px;
    }
}

@media (max-width: 767px) {
    .optech-hero-section {
        padding: 140px 0 70px;
    }
}

/* ---------- Rich-text content lists (CMS content rendered without bullets) ---------- */

.optech-service-details-item ul,
.entry-content ul {
    list-style: disc;
    padding-left: 22px;
    margin-bottom: 24px;
}

.optech-service-details-item ol,
.entry-content ol {
    list-style: decimal;
    padding-left: 22px;
    margin-bottom: 24px;
}

/* the theme resets li { list-style: none } globally, so restore it per-item */
.optech-service-details-item ul li,
.entry-content ul li {
    list-style: disc;
    margin-bottom: 8px;
}

.optech-service-details-item ol li,
.entry-content ol li {
    list-style: decimal;
    margin-bottom: 8px;
}

/* Breadcrumb page title — kept smaller than in-page h1s */
h1.post__title {
    font-size: 32px;
    margin-bottom: 10px;
}

@media (max-width: 767px) {
    h1.post__title {
        font-size: 26px;
    }
}

.breadcrumbs ul li {
    font-size: 15px;
}

/* ---------- Mission/Vision icon-boxes: mobile overflow fix ----------
   Flex rows with a fixed-width icon and long text: the text column needs
   min-width:0 so it can shrink inside the flex row instead of overflowing. */

.optech-iconbox-data2,
.optech-iconbox-data3 {
    min-width: 0;
}

.optech-iconbox-data2 p,
.optech-iconbox-data3 p {
    overflow-wrap: break-word;
}

@media (max-width: 575px) {
    .optech-iconbox-wrap2 {
        flex-direction: column;
        align-items: flex-start;
        gap: 16px;
    }

    .optech-iconbox-wrap3 {
        align-items: flex-start;
    }

    .optech-iconbox-column {
        gap: 24px;
    }
}

/* ---------- Home Mission/Vision (iconbox-wrap3): stack full-width on phones ---------- */

.optech-iconbox-data3 p {
    -webkit-line-clamp: 4;
}

@media (max-width: 575px) {
    .optech-iconbox-wrap3 {
        flex: 0 0 100%;
    }

    .optech-iconbox-data3 p {
        display: block;
        -webkit-line-clamp: unset;
        overflow: visible;
    }
}

/* ---------- Guaranteed stacking for Mission/Vision boxes on phones/small tablets ---------- */

@media (max-width: 767px) {
    .optech-iconbox-column {
        flex-direction: column !important;
        gap: 24px !important;
    }

    .optech-iconbox-wrap3 {
        width: 100% !important;
        flex: 1 1 100% !important;
    }
}

/* ---------- Product card badge (NEW / Cloud Based) ---------- */

.gl-badge {
    position: absolute;
    /* bottom-left: the product mockups carry their title top-left */
    top: auto;
    bottom: 14px;
    left: 12px;
    z-index: 2;
    background: #00B8D4;
    color: #fff;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.04em;
    padding: 4px 12px;
    border-radius: 999px;
}

.optech-shop-thumb {
    position: relative;
}

/* ================= GroLayer home sections (admin-managed) ================= */

.gl-section-head {
    text-align: center;
    max-width: 680px;
    margin: 0 auto 44px;
}
.gl-section-head h2 { margin: 0; }
.gl-section-head-dark h2 { color: #fff; }
.gl-eyebrow {
    display: inline-flex;
    align-items: center;
    gap: 10px;
    text-transform: uppercase;
    letter-spacing: 0.16em;
    font-size: 13px;
    font-weight: 600;
    color: var(--accent-color);
    margin-bottom: 12px;
}
.gl-eyebrow::before,
.gl-eyebrow::after {
    content: "";
    width: 26px;
    height: 2px;
    background: var(--accent-color);
    opacity: 0.5;
}

/* ---- Stage cards (v4) ---- */
.gl-stage-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 22px;
}
@media (max-width: 1199px) { .gl-stage-grid { grid-template-columns: repeat(2, 1fr); } }
@media (max-width: 575px) { .gl-stage-grid { grid-template-columns: 1fr; } }

.gl-stage-card {
    position: relative;
    overflow: hidden;
    display: flex;
    flex-direction: column;
    gap: 12px;
    background: var(--white-bg);
    border: 1px solid var(--light-color1);
    border-radius: 14px;
    padding: 28px 24px 24px;
    transition: all 0.3s ease;
}
.gl-stage-card::after {
    content: "";
    position: absolute;
    top: 0;
    left: 0;
    right: 0;
    height: 3px;
    background: var(--accent-bg);
    transform: scaleX(0);
    transform-origin: left;
    transition: transform 0.35s ease;
}
.gl-stage-card:hover {
    transform: translateY(-5px);
    box-shadow: 0 16px 34px rgba(11, 42, 91, 0.10);
}
.gl-stage-card:hover::after { transform: scaleX(1); }

.gl-stage-icon {
    width: 48px;
    height: 48px;
    border-radius: 12px;
    background: var(--heading-color);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 19px;
    margin-bottom: 4px;
}
.gl-stage-q {
    font-size: 17px;
    font-weight: 700;
    line-height: 1.35;
    color: var(--heading-color);
}
.gl-stage-desc {
    font-size: 14px;
    line-height: 1.6;
    color: var(--body-color);
    flex-grow: 1;
}
.gl-stage-cta {
    display: inline-flex;
    align-items: center;
    justify-content: space-between;
    gap: 10px;
    width: 100%;
    white-space: nowrap;
    border: 1.5px solid var(--light-color2);
    color: var(--heading-color);
    font-size: 13.5px;
    font-weight: 600;
    padding: 11px 16px;
    border-radius: 9px;
    transition: all 0.28s ease;
    margin-top: 4px;
}
.gl-stage-cta i { transition: transform 0.28s ease; }
.gl-stage-card:hover .gl-stage-cta {
    background: var(--heading-color);
    border-color: var(--heading-color);
    color: #fff;
}
.gl-stage-card:hover .gl-stage-cta i { transform: translateX(4px); }
/* ---- Journey: ascending steps on navy panel ---- */
.gl-journey-panel {
    background: linear-gradient(135deg, #0B2A5B 0%, #081F44 100%);
    border-radius: 24px;
    padding: 60px 44px 40px;
    position: relative;
    overflow: hidden;
}
.gl-journey-panel::before {
    content: "";
    position: absolute;
    right: -120px;
    bottom: -160px;
    width: 440px;
    height: 440px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 184, 212, 0.20) 0%, transparent 70%);
    pointer-events: none;
}
.gl-journey {
    display: flex;
    align-items: flex-end;
    justify-content: center;
    gap: 14px;
    position: relative;
    z-index: 1;
}
.gl-journey-step {
    flex: 1 1 0;
    max-width: 168px;
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 9px;
    text-align: center;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 14px;
    padding: 0 14px 18px;
    transition: all 0.3s ease;
}
.gl-journey-step:nth-child(2) { margin-bottom: 18px; }
.gl-journey-step:nth-child(3) { margin-bottom: 36px; }
.gl-journey-step:nth-child(4) { margin-bottom: 54px; }
.gl-journey-step:nth-child(5) { margin-bottom: 72px; }
.gl-journey-step:nth-child(6) { margin-bottom: 90px; }
.gl-journey-step:hover {
    background: rgba(255, 255, 255, 0.12);
    border-color: rgba(255, 255, 255, 0.28);
    transform: translateY(-4px);
}
.gl-journey-bar {
    display: block;
    width: 100%;
    height: 3px;
    border-radius: 0 0 3px 3px;
    background: rgba(255, 255, 255, 0.12);
    overflow: hidden;
    margin-bottom: 14px;
}
.gl-journey-bar span {
    display: block;
    height: 100%;
    background: #00B8D4;
    border-radius: inherit;
}
.gl-journey-num {
    font-size: 11px;
    font-weight: 700;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: #4FCBDF;
    font-variant-numeric: tabular-nums;
}
.gl-journey-ic {
    width: 46px;
    height: 46px;
    border-radius: 50%;
    background: rgba(255, 255, 255, 0.12);
    color: #fff;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 17px;
}
.gl-journey-label {
    font-weight: 600;
    font-size: 14.5px;
    line-height: 1.3;
    color: #fff;
}
.gl-journey-goal {
    background: #00B8D4;
    border-color: #00B8D4;
    box-shadow: 0 16px 36px rgba(0, 184, 212, 0.35);
}
.gl-journey-goal:hover { background: #00B8D4; border-color: #00B8D4; }
.gl-journey-goal .gl-journey-bar { background: rgba(255, 255, 255, 0.25); }
.gl-journey-goal .gl-journey-bar span { background: #fff; }
.gl-journey-goal .gl-journey-num { color: rgba(255, 255, 255, 0.85); }
.gl-journey-goal .gl-journey-ic { background: rgba(255, 255, 255, 0.22); }
.gl-journey-tagline {
    position: relative;
    z-index: 1;
    text-align: center;
    margin: 34px auto 0;
    max-width: 620px;
    font-size: 16.5px;
    font-weight: 600;
    color: rgba(255, 255, 255, 0.92);
}
.gl-journey-tagline::before {
    content: "";
    display: block;
    width: 46px;
    height: 2px;
    background: #00B8D4;
    margin: 0 auto 16px;
}

@media (max-width: 1199px) {
    .gl-journey { flex-wrap: wrap; gap: 12px; align-items: stretch; }
    .gl-journey-step { flex: 0 0 calc(33.333% - 8px); max-width: none; margin-bottom: 0 !important; }
    .gl-journey-panel { padding: 40px 28px 34px; }
}
@media (max-width: 575px) {
    .gl-journey-step { flex: 0 0 calc(50% - 6px); }
    .gl-journey-panel { padding: 30px 18px 28px; border-radius: 18px; }
}
/* ---- Industries: split layout with icon tile grid ---- */

.gl-ind-split {
    display: grid;
    grid-template-columns: 5fr 7fr;
    gap: 56px;
    align-items: center;
}
.gl-ind-intro h2 {
    text-align: left;
    margin: 0 0 16px;
}
.gl-ind-intro p {
    color: var(--body-color);
    font-size: 15.5px;
    line-height: 1.7;
    margin: 0 0 26px;
    max-width: 400px;
}
.gl-eyebrow-left {
    justify-content: flex-start;
}
.gl-eyebrow-left::before { display: none; }
.gl-ind-link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-weight: 600;
    font-size: 15px;
    color: var(--accent-color);
    border-bottom: 2px solid var(--accent-color);
    padding-bottom: 3px;
    transition: gap 0.25s ease;
}
.gl-ind-link:hover { gap: 13px; color: var(--accent-color); }

.gl-ind-grid {
    display: grid;
    grid-template-columns: repeat(4, 1fr);
    gap: 14px;
}
.gl-ind-tile {
    display: flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 10px;
    text-align: center;
    background: var(--white-bg);
    border: 1px solid var(--light-color1);
    border-radius: 14px;
    padding: 22px 10px 18px;
    min-height: 104px;
    transition: all 0.28s ease;
}
.gl-ind-tile i {
    font-size: 23px;
    color: var(--heading-color);
    transition: all 0.28s ease;
}
.gl-ind-tile span {
    font-size: 13px;
    font-weight: 600;
    line-height: 1.25;
    color: var(--heading-color);
    transition: color 0.28s ease;
}
.gl-ind-tile:hover {
    background: var(--heading-color);
    border-color: var(--heading-color);
    transform: translateY(-4px);
    box-shadow: 0 14px 30px rgba(11, 42, 91, 0.16);
}
.gl-ind-tile:hover i,
.gl-ind-tile:hover span { color: #fff; }

.gl-ind-tile-cta {
    background: var(--accent-bg);
    border-color: var(--accent-bg);
    box-shadow: 0 10px 26px rgba(0, 184, 212, 0.28);
}
.gl-ind-tile-cta i,
.gl-ind-tile-cta span { color: #fff; }
.gl-ind-tile-cta:hover {
    background: var(--accent-bg);
    border-color: var(--accent-bg);
    box-shadow: 0 16px 34px rgba(0, 184, 212, 0.4);
}

@media (max-width: 991px) {
    .gl-ind-split { grid-template-columns: 1fr; gap: 34px; }
    .gl-ind-intro { text-align: center; }
    .gl-ind-intro h2 { text-align: center; }
    .gl-ind-intro p { margin-left: auto; margin-right: auto; }
    .gl-eyebrow-left { justify-content: center; }
    .gl-eyebrow-left::before { display: inline-block; }
}
@media (max-width: 575px) {
    .gl-ind-grid { grid-template-columns: repeat(3, 1fr); gap: 10px; }
    .gl-ind-tile { min-height: 92px; padding: 16px 6px 14px; }
    .gl-ind-tile span { font-size: 12px; }
}

.gl-transform-section {
    position: relative;
    background: linear-gradient(135deg, #0B2A5B 0%, #081F44 100%);
    overflow: hidden;
}
.gl-transform-section::before {
    content: "";
    position: absolute;
    right: -140px;
    top: -140px;
    width: 420px;
    height: 420px;
    border-radius: 50%;
    background: radial-gradient(circle, rgba(0, 184, 212, 0.16) 0%, transparent 70%);
    pointer-events: none;
}
.gl-transform-section .gl-eyebrow { color: #35CBE2; }
.gl-transform-section .gl-eyebrow::before,
.gl-transform-section .gl-eyebrow::after { background: #35CBE2; }
/* ---- Transformation: interactive state toggle panel ---- */

.gl-tr2-panel {
    position: relative;
    max-width: 880px;
    margin: 0 auto;
    background: rgba(255, 255, 255, 0.04);
    border: 1px solid rgba(255, 255, 255, 0.14);
    border-radius: 22px;
    padding: 34px 38px 26px;
    transition: border-color 0.6s ease, box-shadow 0.6s ease, background 0.6s ease;
}
.gl-tr2-panel.gl-mode-after {
    border-color: rgba(0, 184, 212, 0.55);
    background: rgba(0, 184, 212, 0.05);
    box-shadow: 0 0 60px rgba(0, 184, 212, 0.22), 0 24px 60px rgba(0, 0, 0, 0.35);
}

.gl-tr2-tabs {
    display: flex;
    justify-content: center;
    gap: 6px;
    background: rgba(255, 255, 255, 0.07);
    border: 1px solid rgba(255, 255, 255, 0.12);
    border-radius: 999px;
    padding: 5px;
    width: fit-content;
    margin: 0 auto 30px;
}
.gl-tr2-tab {
    border: 0;
    background: transparent;
    color: rgba(255, 255, 255, 0.65);
    font-family: inherit;
    font-size: 13.5px;
    font-weight: 600;
    padding: 10px 22px;
    border-radius: 999px;
    cursor: pointer;
    transition: all 0.3s ease;
    white-space: nowrap;
}
.gl-tr2-tab.active {
    background: #00B8D4;
    color: #fff;
    box-shadow: 0 6px 18px rgba(0, 184, 212, 0.4);
}

.gl-tr2-states { display: grid; }
.gl-tr2-state {
    grid-area: 1 / 1;
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 12px;
    transition: opacity 0.5s ease, transform 0.5s ease, visibility 0.5s;
}
.gl-tr2-before { opacity: 1; visibility: visible; transform: translateY(0); }
.gl-tr2-after { opacity: 0; visibility: hidden; transform: translateY(14px); }
.gl-mode-after .gl-tr2-before { opacity: 0; visibility: hidden; transform: translateY(-14px); }
.gl-mode-after .gl-tr2-after { opacity: 1; visibility: visible; transform: translateY(0); }

.gl-tr2-chip {
    display: flex;
    align-items: center;
    gap: 13px;
    padding: 15px 18px;
    border-radius: 12px;
    font-size: 14.5px;
    font-weight: 600;
}
.gl-tr2-before .gl-tr2-chip {
    background: rgba(255, 255, 255, 0.05);
    border: 1px solid rgba(255, 255, 255, 0.09);
    color: rgba(255, 255, 255, 0.66);
}
.gl-tr2-after .gl-tr2-chip {
    background: #fff;
    border: 1px solid #fff;
    color: #16324F;
    box-shadow: 0 10px 26px rgba(0, 0, 0, 0.25);
}
.gl-tr2-ic {
    width: 27px;
    height: 27px;
    border-radius: 50%;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 11px;
    flex-shrink: 0;
}
.gl-tr2-before .gl-tr2-ic { background: rgba(230, 126, 106, 0.20); color: #E8836F; }
.gl-tr2-after .gl-tr2-ic { background: #E5F7FB; color: #00B8D4; }

.gl-tr2-caption {
    text-align: center;
    margin-top: 26px;
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: rgba(255, 255, 255, 0.45);
}
.gl-tr2-caption i { color: #35CBE2; margin-right: 6px; }

@media (max-width: 767px) {
    .gl-tr2-panel { padding: 24px 18px 20px; }
    .gl-tr2-state { grid-template-columns: 1fr; gap: 10px; }
    .gl-tr2-tab { font-size: 12px; padding: 9px 14px; }
    .gl-tr2-chip { padding: 13px 15px; font-size: 13.5px; }
}

/* ---- Mission/Vision two-line layout (title + description) ---- */

.optech-iconbox-data3 .gl-mv-title {
    font-size: 15px;
    font-weight: 700;
    color: var(--heading-color);
    margin: 0 0 5px;
}
.optech-iconbox-data3 .gl-mv-title + p {
    font-weight: 500;
    color: var(--body-color);
}


/* ---- Mission/Vision boxes: one per row (stacked, full width) ---- */

.optech-iconbox-column {
    flex-direction: column !important;
    gap: 22px !important;
}
.optech-iconbox-column::before {
    content: none !important;
}
.optech-iconbox-wrap3 {
    width: 100%;
}


/* ---- Transformation CTA centering ---- */

.gl-transform-cta {
    text-align: center;
    margin-top: 40px;
}
