/* === telecom-grade.css === */

@font-face {
    font-family: "Neue Haas Grotesk Text Pro";
    src: url("/dist/fonts/NHaasGroteskTXPro-Rg.ttf") format("truetype");
    font-style: normal;
    font-weight: 400 700;
    font-display: swap;
}

.page-tel {
    --nav-h: 75px;
    background: #f2f2f2;
    color: #000;
    font-family: "Neue Haas Grotesk Text Pro", "Helvetica Neue", Helvetica, Arial, sans-serif;
}
.page-tel #navbar { opacity: 1; transform: none; }
.page-tel #site-footer { background: #021c25; }

/* Fluid: scale the fixed 1440 design to fill the viewport edge-to-edge */
.tel-scale {
    width: 1440px;
    margin: 0 auto;
    zoom: calc(100vw / 1440px);
}
.tel-stage img { max-width: none; }
.tel-stage {
    position: relative;
    width: 1440px;
    height: 2213px;
    margin: 0 auto;
    background: #f2f2f2;
    overflow: hidden;
}

/* ── Hero ─────────────────────────────────────────────────── */
.tel-hero { position: absolute; top: 0; left: 0; width: 1440px; height: 600px; overflow: hidden; background: #021c25; }
.tel-hero__bg { position: absolute; left: 0; top: 0; width: 1440px; height: 600px; object-fit: cover; object-position: 50% 50%; }
.tel-hero__overlay { position: absolute; left: 0; top: 0; width: 1440px; height: 600px; background: #000; opacity: 0.3; }
.tel-hero__content { position: absolute; left: 61px; top: 300px; width: 953px; }
.tel-crumb { margin: 0; font-size: 18px; line-height: 16px; font-weight: 400; color: #f2f2f2; }
.tel-crumb strong { font-weight: 700; }
.tel-hero__title { margin: 17px 0 0; font-size: 80px; line-height: 80px; font-weight: 700; color: #fff; text-transform: uppercase; text-shadow: 4px 4px 10px rgba(0, 0, 0, 0.25); }
.tel-hero__swipe { position: absolute; left: 1328px; top: 488px; width: 52px; display: flex; flex-direction: column; align-items: center; gap: 6px; color: #fff; font-size: 18px; line-height: 16px; }

/* ── Statement + body ─────────────────────────────────────── */
.tel-statement { position: absolute; left: 155px; top: 650px; width: 1131px; margin: 0; font-size: 40px; line-height: 40px; font-weight: 700; color: #074158; text-align: center; }
.tel-body { position: absolute; left: 122px; top: 730px; width: 1197px; margin: 0; font-size: 24px; line-height: 32px; font-weight: 400; color: #000; }

/* ── Built to Perform band ────────────────────────────────── */
.tel-built { position: absolute; left: 0; top: 912px; width: 1440px; height: 637px; overflow: hidden; }
.tel-built__pattern {
    position: absolute; inset: 0;
    background-image: url("/dist/images/ground-support/pattern-tile.svg");
    background-size: 43.5px 43.5px;
    background-position: -324.43px 0;
    background-repeat: repeat;
    opacity: 0.05;
    pointer-events: none;
}
.tel-built__title { position: absolute; left: 488px; top: 50px; width: 464px; margin: 0; font-size: 60px; line-height: 60px; font-weight: 700; color: #000; text-align: center; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.25); }
.tel-built__intro { position: absolute; left: 122px; top: 145px; width: 1197px; margin: 0; font-size: 24px; line-height: 32px; font-weight: 400; color: #000; }
.tel-pill { position: absolute; height: 146px; margin: 0; }
.tel-pill--dim { left: 247px; top: 245px; width: 428px; }
.tel-pill--die { left: 765px; top: 245px; width: 428px; }
.tel-pill--res { left: 516px; top: 441px; width: 408px; }
.tel-pill__body { position: absolute; top: 10px; right: 0; width: 350px; height: 126px; display: flex; align-items: center; padding-left: 77px; box-sizing: border-box; background: #fff; border-radius: 19px; box-shadow: 0 5px 9px rgba(0, 0, 0, 0.22); }
.tel-pill__body p { margin: 0; font-size: 20px; line-height: 24px; font-weight: 500; color: #021c25; }
.tel-pill__disc { position: absolute; left: 0; top: 0; width: 146px; height: 146px; display: grid; place-items: center; box-sizing: border-box; border: 8px solid #f2f2f2; border-radius: 50%; color: #fff; box-shadow: 0 3px 8px rgba(0, 0, 0, 0.24); z-index: 1; }
.tel-pill__disc::before { position: absolute; inset: 10px; border: 2px solid rgba(255,255,255,.72); border-radius: 50%; content: ""; }
.tel-pill__disc svg { position: relative; z-index: 1; width: 58px; height: 64px; }
/* Figma 9:11340 — the real icon is 59.995 x 60.863; the shared 58x64 box is the wrong aspect */
.tel-pill__disc--dim svg { width: 59.995px; height: 60.863px; }
.tel-pill--dim .tel-pill__body { border-right: 5px solid #074158; }
.tel-pill__disc--dim { background: #074158; }
.tel-pill--die .tel-pill__body { border-right: 5px solid #8db9c4; }
.tel-pill__disc--die { background: #8db9c4; }
.tel-pill--res { width: 408px; }
.tel-pill--res .tel-pill__body { width: 331px; border-right: 5px solid #4f6068; }
.tel-pill__disc--res { background: #4f6068; }
.tel-pill--res .tel-pill__body p { font-size: 20px; line-height: 24px; }

/* ── Our Products carousel (same model as Ground Support) ─── */
.tel-products { position: absolute; left: 0; top: 1549px; width: 1440px; height: 565px; overflow: hidden; background: #dfe0e0; }
.tel-products__nav { position: absolute; left: 61px; top: 50px; display: flex; gap: 20px; z-index: 2; }
.tel-products__arrow { width: 42px; height: 42px; padding: 0; display: grid; place-items: center; border: 1px solid #6b7d84; border-radius: 50%; background: transparent; }
.tel-products__arrow svg { width: 16px; height: 16px; stroke: #21424e; }
.tel-products__title { position: absolute; left: 61px; top: 192px; margin: 0; font-size: 60px; line-height: 60px; font-weight: 700; color: #000; text-shadow: 1px 1px 3px rgba(0, 0, 0, 0.25); }
.tel-products__sub { position: absolute; left: 61px; top: 287px; width: 468px; margin: 0; font-size: 20px; line-height: 28px; font-weight: 400; color: #000; }
.tel-products__track { position: absolute; left: 603px; top: 45px; width: 837px; height: 475.95px; overflow: hidden; cursor: grab; }
.tel-products__track:active { cursor: grabbing; }
.tel-products__rail { display: flex; align-items: center; gap: 33px; width: max-content; height: 475.95px; transition: transform 0.4s ease; will-change: transform; }
.tel-card {
    position: relative; flex: 0 0 auto;
    width: 369.94px; height: 421.37px;
    border-radius: 11px;
    background: linear-gradient(180deg, #c2c4c5 0%, #8fa1a8 100%);
    box-shadow: 4.4px 4.4px 23.6px 0 rgba(0, 0, 0, 0.2);
    overflow: hidden; user-select: none;
    transition: width 0.4s ease, height 0.4s ease, opacity 0.4s ease;
}
.tel-card--focus { width: 417.85px; height: 475.95px; box-shadow: none; }
.tel-card__img { position: absolute; inset: 0; width: 100%; height: 100%; max-width: none; object-fit: cover; object-position: center; -webkit-user-drag: none; user-drag: none; pointer-events: none; }
.tel-card__plate { position: absolute; left: 0; right: 0; bottom: 0; height: 190px; background: linear-gradient(to bottom, rgba(45, 66, 74, 0) 0%, rgba(45, 66, 74, 0.85) 100%); }
.tel-card__label { position: absolute; left: 0; right: 0; bottom: 28px; margin: 0; font-size: 20px; line-height: 24px; font-weight: 700; color: #f2f2f2; text-align: center; text-transform: capitalize; z-index: 1; }

/* ── Phone layout ─────────────────────────────────────────── */
@media (max-width: 767px) {
    .tel-scale { zoom: 1 !important; width: auto; }
    .tel-stage { width: auto; height: auto; overflow: visible; }
    .tel-stage img { max-width: 100%; }

    /* hero */
    .tel-hero { position: relative; width: auto; height: 800px; }
    .tel-hero__bg, .tel-hero__overlay { width: 100%; height: 100%; }
    .tel-hero__content { left: 16px; right: 76px; top: auto; bottom: 32px; width: auto; }
    .tel-crumb { font-size: 13px; line-height: 15px; }
    .tel-hero__title { margin-top: 10px; font-size: 40px; line-height: 42px; }
    .tel-hero__swipe { left: auto; right: 16px; top: auto; bottom: 32px; font-size: 14px; }

    /* statement + body */
    .tel-statement { position: relative; left: 0; top: 0; width: auto; margin: 32px 16px 0; font-size: 26px; line-height: 32px; }
    .tel-body { position: relative; left: 0; top: 0; width: auto; margin: 18px 16px 0; font-size: 16px; line-height: 24px; }

    /* built to perform — pills stack */
    .tel-built { position: relative; top: 0; width: auto; height: auto; margin-top: 36px; padding: 28px 0 32px; }
    .tel-built__title { position: relative; left: 0; top: 0; width: auto; margin: 0 16px; font-size: 32px; line-height: 38px; }
    .tel-built__intro { position: relative; left: 0; top: 0; width: auto; margin: 14px 16px 0; font-size: 16px; line-height: 24px; }
    .tel-pill { position: relative; left: 0 !important; top: 0 !important; width: auto !important; height: 110px; margin: 22px 16px 0; }
    .tel-pill__body { top: 8px; left: 55px; right: 0; width: auto !important; height: 94px; padding-left: 68px; }
    .tel-pill__body p, .tel-pill--res .tel-pill__body p { font-size: 16px; line-height: 20px; }
    .tel-pill__disc { width: 110px; height: 110px; border-width: 6px; }
    .tel-pill__disc svg { width: 44px; height: 48px; }

    /* products — keep the JS carousel intact (hardcoded 402.94px steps),
       zoom the whole track so its coordinate space is untouched */
    .tel-products { position: relative; top: 0; width: auto; height: auto; margin-top: 36px; padding: 28px 0 32px; }
    .tel-products__nav { position: relative; left: 16px; top: 0; }
    .tel-products__title { position: relative; left: 0; top: 0; margin: 18px 16px 0; font-size: 32px; line-height: 38px; }
    .tel-products__sub { position: relative; left: 0; top: 0; width: auto; margin: 12px 16px 0; font-size: 16px; line-height: 24px; }
    .tel-products__track {
        position: relative; left: 0; top: 0;
        margin: 22px 0 0 16px;
        width: calc((100vw - 32px) / 0.65);
        zoom: 0.65; /* 20px labels render at 13px — the phone minimum */
    }
}

/* ── Full-bleed hero past the 16" cap ───────────────────────────────────── */
@media (min-width: 1729px) {
    .tel-stage { overflow: visible; }
    .tel-hero { left: var(--bleed-left); width: var(--bleed-w); }
    .tel-hero__bg,
    .tel-hero__overlay { width: var(--bleed-w); }
    .tel-hero__content { left: calc(61px + var(--bleed-shift)); }
    .tel-hero__swipe { left: calc(1328px + var(--bleed-shift)); }

    .tel-built,
    .tel-products {
        left: var(--bleed-left);
        width: var(--bleed-w);
    }
    .tel-built__title,
    .tel-built__intro,
    .tel-built .tel-pill,
    .tel-products__nav,
    .tel-products__title,
    .tel-products__sub {
        translate: var(--bleed-shift) 0;
    }
    .tel-products__track {
        translate: var(--bleed-shift) 0;
        width: calc(var(--bleed-w) - 603px - var(--bleed-shift));
    }
}
