
.elementor-widget-tawygo-our-story{width:100%!important}.tgos{--accent:#00A4E9;--ink:#07152A;position:relative;overflow:hidden;isolation:isolate;width:100%;background:#F7FBFD;color:var(--ink)}.tgos *{box-sizing:border-box}.tgos:before{content:"";position:absolute;width:520px;height:520px;left:-230px;top:35%;border-radius:50%;background:radial-gradient(circle,rgba(0,164,233,.09),rgba(0,164,233,.025) 48%,transparent 72%);pointer-events:none}.tgos__inner{position:relative;z-index:2;width:min(92vw,1380px);margin:auto}.tgos__header{max-width:880px;margin:0 auto 48px;text-align:center}.tgos__eyebrow{display:flex;align-items:center;justify-content:center;gap:10px;margin-bottom:17px;color:rgba(7,21,42,.52);font-size:10px;font-weight:700;letter-spacing:2.2px}.tgos__eyebrow span{width:28px;height:2px;border-radius:999px;background:var(--accent)}.tgos__heading{margin:0;font-size:clamp(48px,5.1vw,78px);line-height:.98;font-weight:520;letter-spacing:-3.8px}.tgos__heading>span{display:block}.tgos__heading-accent{color:var(--accent)}.tgos__intro{max-width:680px;margin:20px auto 0;color:rgba(7,21,42,.55);font-size:15px;line-height:1.72}.tgos__story-grid{display:grid;grid-template-columns:minmax(340px,.84fr) minmax(0,1.16fr);align-items:start;gap:58px}.tgos__visual{position:sticky;top:120px;align-self:start;width:100%;min-width:0}.tgos__visual-frame{position:relative;width:100%;height:650px;min-height:650px;overflow:hidden;background:#06131A;box-shadow:0 26px 70px rgba(16,52,69,.11);isolation:isolate}.tgos__visual-image{
position:absolute !important;
z-index:0;
inset:0 !important;
display:block !important;
width:100% !important;
height:100% !important;
min-width:100% !important;
min-height:100% !important;
max-width:none !important;
max-height:none !important;
margin:0 !important;
padding:0 !important;
object-fit:cover !important;
object-position:50% var(--tgos-image-y,50%);
transform:scale(1);
transform-origin:center center;
}.tgos__visual-overlay{position:absolute;z-index:1;inset:0;background:linear-gradient(180deg,rgba(3,12,18,.04),rgba(3,12,18,.18) 58%,rgba(3,12,18,.76) 100%)}.tgos__brand-mark{position:absolute;z-index:2;right:-65px;top:11%;width:310px;opacity:.11;filter:drop-shadow(0 0 30px rgba(0,164,233,.18))}.tgos__visual-badge{position:absolute;z-index:3;left:24px;right:24px;bottom:24px;display:flex;align-items:center;gap:10px;width:max-content;max-width:calc(100% - 48px);padding:11px 15px;border:1px solid rgba(255,255,255,.12);border-radius:999px;background:rgba(6,19,26,.58);backdrop-filter:blur(14px);color:#fff;font-size:10px;font-weight:600}.tgos__visual-badge span{width:7px;height:7px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(0,164,233,.12)}.tgos__journey{position:relative;display:grid;gap:17px}.tgos__route-line{position:absolute;left:30px;top:40px;bottom:40px;width:1px;background:linear-gradient(180deg,rgba(0,164,233,.12),rgba(0,164,233,.55) 24%,rgba(0,164,233,.3) 73%,rgba(0,164,233,.08))}.tgos__chapter{position:relative;display:grid;grid-template-columns:61px 58px minmax(0,1fr);align-items:start;min-height:195px;padding:26px;overflow:hidden;border:1px solid #E7EFF3;background:#fff;box-shadow:0 14px 45px rgba(20,55,72,.055);transition:.4s cubic-bezier(.16,1,.3,1)}.tgos__chapter:hover{transform:translateY(-5px);border-color:rgba(0,164,233,.22);box-shadow:0 22px 56px rgba(0,164,233,.085)}.tgos__node{position:relative;z-index:2;width:36px;height:36px;display:grid;place-items:center;border:1px solid rgba(0,164,233,.16);border-radius:50%;background:#fff}.tgos__node span{width:8px;height:8px;border-radius:50%;background:var(--accent);box-shadow:0 0 0 5px rgba(0,164,233,.1)}.tgos__chapter-number{padding-top:4px;color:rgba(7,21,42,.19);font-size:28px;font-weight:650}.tgos__chapter-label{margin-bottom:8px;color:var(--accent);font-size:9px;font-weight:750;letter-spacing:1.6px}.tgos__chapter h3{margin:0;color:var(--ink);font-size:23px;line-height:1.15;font-weight:590;letter-spacing:-.8px}.tgos__chapter p{margin:12px 0 0;color:rgba(7,21,42,.56);font-size:13px;line-height:1.72}.tgos__chips{display:flex;flex-wrap:wrap;gap:7px;margin-top:16px}.tgos__chips span{display:inline-flex;align-items:center;min-height:27px;padding:0 10px;border:1px solid rgba(0,164,233,.11);border-radius:999px;background:rgba(0,164,233,.055);color:rgba(7,21,42,.62);font-size:8px;font-weight:600}@media(max-width:1024px){.tgos__story-grid{grid-template-columns:1fr}.tgos__visual{position:relative;top:auto}.tgos__visual-frame{min-height:500px}}@media(max-width:767px){.tgos__inner{width:90vw}.tgos__header{margin-bottom:34px}.tgos__heading{font-size:clamp(42px,12vw,58px);letter-spacing:-2.5px}.tgos__visual-frame{min-height:430px}.tgos__chapter{grid-template-columns:45px minmax(0,1fr);min-height:0;padding:20px}.tgos__chapter-number{display:none}.tgos__route-line{left:23px}.tgos__chapter h3{font-size:20px}}


/* =========================================================
   V1.1 — IMAGE FILL FIX
   Prevent Elementor/theme img { height:auto } from creating
   empty blue space beneath portrait or landscape images.
========================================================= */
.elementor-widget-tawygo-our-story .tgos__visual-frame > img.tgos__visual-image,
.elementor .elementor-widget-tawygo-our-story .tgos__visual-frame > img.tgos__visual-image{
    position:absolute !important;
    inset:0 !important;

    display:block !important;

    width:100% !important;
    height:100% !important;

    min-width:100% !important;
    min-height:100% !important;

    max-width:none !important;
    max-height:none !important;

    margin:0 !important;
    padding:0 !important;

    object-fit:cover !important;

    border:0 !important;
}

/* The frame never stretches from the natural image ratio. */
.elementor-widget-tawygo-our-story .tgos__visual-frame{
    line-height:0;
}

/* Restore normal line-height for text layered on the image. */
.elementor-widget-tawygo-our-story .tgos__visual-badge{
    line-height:1.35;
}


/* =========================================================
   V1.2 — TRUE FULL WIDTH FIX
   Break out of Elementor boxed parent while keeping inner
   content constrained to its editable max width.
========================================================= */

/* Elementor widget itself must span the browser viewport */
.elementor-widget-tawygo-our-story{
    position:relative !important;

    width:100vw !important;
    max-width:100vw !important;

    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;

    align-self:stretch !important;
    flex:0 0 auto !important;

    overflow:visible !important;
}

/* Elementor's widget container must not re-box the section */
.elementor-widget-tawygo-our-story > .elementor-widget-container{
    width:100% !important;
    max-width:none !important;

    margin:0 !important;
    padding:0 !important;

    overflow:visible !important;
}

/* The actual Our Story section owns the full viewport width */
.elementor-widget-tawygo-our-story .tgos{
    width:100vw !important;
    max-width:100vw !important;

    margin:0 !important;

    position:relative !important;

    left:0 !important;
    right:0 !important;
}

/* Keep actual content nicely constrained */
.elementor-widget-tawygo-our-story .tgos__inner{
    width:min(92vw,1380px) !important;

    margin-left:auto !important;
    margin-right:auto !important;
}

/* Protect against boxed Elementor parent clipping the breakout */
.e-con:has(> .elementor-widget-tawygo-our-story),
.e-con-inner:has(> .elementor-widget-tawygo-our-story){
    overflow:visible !important;
}

/* Editor preview can add its own constrained widget width */
.elementor-editor-active .elementor-widget-tawygo-our-story,
.elementor-editor-preview .elementor-widget-tawygo-our-story{
    width:100vw !important;
    max-width:100vw !important;
}

@media(max-width:767px){

    .elementor-widget-tawygo-our-story{
        width:100vw !important;
        max-width:100vw !important;

        margin-left:calc(50% - 50vw) !important;
        margin-right:calc(50% - 50vw) !important;
    }

    .elementor-widget-tawygo-our-story .tgos__inner{
        width:90vw !important;
    }
}


/* =========================================================
   V1.3 — PHANTOM SPACE / HEIGHT FIX
   The previous full-width patch used flex-basis:100vw.
   Inside Elementor flex containers that value could become
   a huge vertical reserved space. This version keeps the
   full viewport width WITHOUT reserving viewport-width height.
========================================================= */

.elementor-widget-tawygo-our-story{
    flex:0 0 auto !important;
    flex-basis:auto !important;

    height:auto !important;
    min-height:0 !important;

    align-self:stretch !important;

    margin-top:0 !important;
    margin-bottom:0 !important;
}

.elementor-widget-tawygo-our-story > .elementor-widget-container{
    height:auto !important;
    min-height:0 !important;

    margin-top:0 !important;
    margin-bottom:0 !important;
}

.elementor-widget-tawygo-our-story .tgos{
    height:auto !important;
    min-height:0 !important;

    margin-top:0 !important;
    margin-bottom:0 !important;
}

/* Do not let the wrapping Elementor container inherit a fake min-height */
.e-con:has(> .elementor-widget-tawygo-our-story),
.e-con-inner:has(> .elementor-widget-tawygo-our-story){
    min-height:0 !important;
}

/* Preserve full-width breakout */
.elementor-widget-tawygo-our-story{
    width:100vw !important;
    max-width:100vw !important;

    margin-left:calc(50% - 50vw) !important;
    margin-right:calc(50% - 50vw) !important;
}

/* Mobile */
@media(max-width:767px){
    .elementor-widget-tawygo-our-story{
        flex-basis:auto !important;
        height:auto !important;
        min-height:0 !important;
    }
}
