Sandbox Test Page 2

Version 6.1 by Jareth Carpenter on 2026/08/31 22:28

Click on "Edit" and modify the contents of this page, then click on "Save & View" to see how they look like on your page!

Here's some dummy text to show you what the page looks like

Lorem ipsum dolor sit amet, consectetur adipisicing elit, sed do eiusmod tempor incididunt ut labore et dolore magna aliqua. Ut enim ad minim veniam, quis nostrud exercitation ullamco laboris nisi ut aliquip ex ea commodo consequat. Duis aute irure dolor in reprehenderit in voluptate velit esse cillum dolore eu fugiat nulla pariatur. Excepteur sint occaecat cupidatat non proident, sunt in culpa qui officia deserunt mollit anim id est laborum.

@import url('https://fonts.googleapis.com/css2?family=Host+Grotesk:wght@300;400;600;800&display=swap');

  /* Safety net: if the wiki ever renders this block twice,
     show only the first copy. */
  .fdm-hub ~ .fdm-hub { display: none !important; }

  /* ---- FirstDigital brand tokens (Brand Guide 2025, p.11) ---- */
  .fdm-hub {
    --fd-navy:        #003366;  /* headlines, backgrounds, icons */
    --fd-blue:        #307ab2;  /* headlines, backgrounds, icons */
    --fd-blue-bright: #38b2e3;  /* stand-out headlines, icons    */
    --fd-red:         #cf333d;  /* accents - use selectively     */
    --fd-body:        #2e404d;  /* paragraph text                */
    --fd-secondary:   #8f9499;  /* secondary text                */
    --fd-bg-mid:      #dedede;  /* backgrounds                   */
    --fd-bg-light:    #f0f0f0;  /* backgrounds                   */
    --fd-white:       #ffffff;
    --ms-azure:       #0078d4;  /* Microsoft's own brand blue    */
  }

  .fdm-hub, .fdm-hub * { box-sizing: border-box; }

  .fdm-hub {
    font-family: 'Host Grotesk', 'Segoe UI', -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    font-weight: 300;
    color: var(--fd-body);
    background: var(--fd-white);
    max-width: 1000px;
    margin: 0 auto;
    padding: 0 20px 28px;
    -webkit-font-smoothing: antialiased;
  }

  /* ---- Masthead: full-colour logo on white (Logo Rules, p.10) ---- */
  .fdm-masthead {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 20px;
    flex-wrap: wrap;
    padding: 22px 0 18px;
    border-bottom: 1px solid var(--fd-bg-mid);
  }

  .fdm-masthead img { height: 46px; width: auto; display: block; }

  .fdm-masthead-label {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.16em;
    text-transform: uppercase;
    color: var(--fd-secondary);
    white-space: nowrap;
  }

  /* ---- Hero ---- */
  .fdm-hero {
    position: relative;
    margin-top: 22px;
    border-radius: 6px;
    overflow: hidden;
    min-height: 250px;
    display: flex;
    align-items: flex-end;
  }

  .fdm-hero-img {
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
  }

  /* explicit offsets, not the inset shorthand, for wider support */
  .fdm-hero::after {
    content: "";
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(100deg,
      rgba(0,51,102,0.94) 0%,
      rgba(0,51,102,0.86) 42%,
      rgba(0,51,102,0.30) 100%);
  }

  .fdm-hero-inner {
    position: relative;
    z-index: 1;
    padding: 32px 32px 30px;
    max-width: 600px;
  }

  /* red rule = brand accent motif (Brand Guide p.4) */
  .fdm-rule {
    width: 62px; height: 4px;
    background: var(--fd-red);
    border: 0;
    margin: 0 0 16px;
  }

  .fdm-eyebrow {
    font-size: 12px;
    font-weight: 600;
    letter-spacing: 0.18em;
    text-transform: uppercase;
    color: var(--fd-blue-bright);
    margin-bottom: 9px;
  }

  .fdm-hero h1 {
    font-size: clamp(26px, 3.6vw, 36px);
    font-weight: 800;
    line-height: 1.14;
    letter-spacing: -0.01em;
    color: var(--fd-white);
    margin: 0 0 11px;
  }

  .fdm-hero p {
    font-size: 15px;
    font-weight: 300;
    line-height: 1.6;
    color: #dbe6ef;
    margin: 0;
    max-width: 470px;
  }

  /* ---- Card grid ---- */
  .fdm-grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 22px;
    margin-top: 24px;
  }

  .fdm-card {
    display: flex;
    flex-direction: column;
    background: var(--fd-white);
    border: 1px solid var(--fd-bg-mid);
    border-radius: 6px;
    overflow: hidden;
    text-decoration: none !important;
    color: inherit;
    height: 100%;
    transition: transform .2s ease, box-shadow .2s ease, border-color .2s ease;
  }

  .fdm-card:hover {
    transform: translateY(-3px);
    border-color: var(--fd-blue-bright);
    box-shadow: 0 12px 26px rgba(0,51,102,0.14);
  }

  .fdm-card:focus-visible {
    outline: 3px solid var(--fd-blue-bright);
    outline-offset: 2px;
  }

  .fdm-media {
    position: relative;
    height: 132px;
    background: var(--fd-bg-light);
    flex: 0 0 auto;
    /* no overflow:hidden here - the logo badge overhangs the bottom
       edge on purpose. The photo is already clipped by object-fit,
       and .fdm-card's own overflow:hidden keeps the rounded corners. */
  }

  .fdm-media img {
    width: 100%; height: 100%;
    object-fit: cover;
    display: block;
  }

  .fdm-media::after {
    content: "";
    position: absolute;
    top: 0; right: 0; bottom: 0; left: 0;
    background: linear-gradient(180deg,
      rgba(0,51,102,0.06) 0%, rgba(0,40,79,0.52) 100%);
  }

  /* white badge keeps every logo brand-legal over a photo (p.10) */
  .fdm-badge {
    position: absolute;
    left: 18px;
    bottom: 0;
    z-index: 1;
    transform: translateY(50%);
    width: 58px; height: 58px;
    border-radius: 8px;
    background: var(--fd-white);
    box-shadow: 0 5px 14px rgba(0,0,0,0.18);
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
  }

  .fdm-badge img { object-fit: contain; display: block; }

  .fdm-logo-webex        { width: 74%; height: auto; }
  .fdm-logo-teams        { width: 64%; height: auto; }
  .fdm-logo-firstdigital { width: 84%; height: auto; }

  /* icons: dark-blue stroke, bright-blue accent (Brand Guide p.14) */
  .fdm-badge svg {
    width: 26px; height: 26px;
    fill: none;
    stroke: var(--fd-navy);
    stroke-width: 1.7;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .fdm-badge svg .accent { stroke: var(--fd-blue-bright); }

  .fdm-body {
    padding: 38px 22px 22px;
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
  }

  .fdm-title {
    display: block;
    font-size: 16.5px;
    font-weight: 800;
    line-height: 1.28;
    color: var(--fd-navy);
  }

  .fdm-sub {
    display: block;
    font-size: 13.5px;
    font-weight: 300;
    line-height: 1.55;
    color: var(--fd-body);
    margin-top: 5px;
  }

  .fdm-cta {
    display: flex;
    align-items: center;
    gap: 7px;
    margin-top: auto;
    padding-top: 16px;
    font-size: 13px;
    font-weight: 600;
    color: var(--fd-red);
  }

  .fdm-cta svg {
    width: 15px; height: 15px;
    fill: none;
    stroke: var(--fd-red);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
    transition: transform .2s ease;
  }

  .fdm-card:hover .fdm-cta svg { transform: translateX(4px); }

  /* ---- Footer ---- */
  .fdm-footer {
    margin-top: 32px;
    padding-top: 18px;
    border-top: 1px solid var(--fd-bg-mid);
    display: flex;
    justify-content: center;
    align-items: center;
    flex-wrap: wrap;
    gap: 14px;
    font-size: 13px;
  }

  .fdm-footer a {
    font-weight: 600;
    text-decoration: none !important;
    color: var(--fd-blue);
  }

  .fdm-footer a:hover { text-decoration: underline !important; }

  .fdm-footer a:focus-visible {
    outline: 2px solid var(--fd-blue-bright);
    outline-offset: 3px;
  }

  .fdm-brand-first  { color: var(--fd-blue); }
  .fdm-brand-second { color: var(--fd-navy); }
  .fdm-azure        { color: var(--ms-azure); }
  .fdm-divider      { color: var(--fd-bg-mid); font-weight: 300; }

  @media (max-width: 768px) {
    .fdm-grid { grid-template-columns: 1fr; }
    .fdm-hub { padding: 0 12px 22px; }
    .fdm-masthead img { height: 38px; }
    .fdm-hero { min-height: 220px; }
    .fdm-hero-inner { padding: 24px 22px 22px; }
  }

  @media (prefers-reduced-motion: reduce) {
    .fdm-card, .fdm-cta svg { transition: none; }
  }

FirstDigital Fiber · Internet · Cloud · Voice
Product Documentation

Learning Center

Product Documentation

Guides, answers, and implementation resources for your FirstDigital voice services. Choose a product to get started.

FirstDigital Fiber · Internet · Cloud · Voice

Data URI image


Learning Center

Product Documentation

Guides, answers, and implementation resources for your FirstDigital voice services. Choose a product to get started.

  alongside whatever else is already there.
  It is fixed-position and self-contained, so it does not need to
  sit inside that page's own wrapper div, and it will not disturb
  that page's own layout.
 If a wiki page does not yet use at all, you can also add just this snippet on its own to give that page a home button, without needing to touch anything else on it. ------------------------------------------------------------ CUSTOMIZING ------------------------------------------------------------ - Destination: change the href on the tag below if the home URL ever changes. - Position: the button defaults to the bottom-left corner. To move it, edit the "position" rule in .fdhb-btn (bottom/left/ right/top) near the top of the

 block.
  - Label: change "Home" in the markup, or drop the  entirely
    to show only the house icon (a comment marks where).

  ------------------------------------------------------------
  NOTES
  - This file is a FRAGMENT: no DOCTYPE declaration and no
    html / head / body elements.
  - Class and ID names use the "fdhb-" prefix (FirstDigital Home
    Button), so this cannot clash with any other FirstDigital wiki
    fragment's classes ("fdt-", "fdccp-", "fdvq-", "fdcht-", "fdid-",
    "fdmth-", "fdm-", "fdo-", "fd-home", etc.) even when this button
    is pasted onto the same page as one of them.
  - Safe to paste this same snippet onto multiple pages across your
    wiki. If it is ever accidentally pasted twice on the SAME page,
    a safety-net rule hides the second copy so you only ever see
    one button.
  - After saving, only ever re-edit the page in SOURCE / WIKI mode
    (never WYSIWYG) -- the rich-text editor can strip the 
    block or duplicate html-macro content. Paste directly from this
    file rather than through Microsoft Word, which can silently
    turn straight quotes into curly ones and break the HTML/CSS.
  ============================================================
-->
  /* Safety net: if a page ever ends up with this snippet twice,
     show only the first copy. */
  #fdhb-root ~ #fdhb-root { display: none !important; }

  #fdhb-root, #fdhb-root *, #fdhb-root *::before, #fdhb-root *::after {
    box-sizing: border-box;
  }

  #fdhb-root {
    /* FirstDigital brand tokens (Brand Guide 2025, p.11) */
    --fdhb-navy:  #003366;
    --fdhb-bright:#38b2e3;
    --fdhb-white: #ffffff;
  }

  .fdhb-btn {
    position: fixed;
    left: 18px;
    bottom: 18px;
    z-index: 2147483000; /* sit above virtually anything else on the page */

    display: inline-flex;
    align-items: center;
    gap: 8px;

    background: var(--fdhb-navy);
    color: var(--fdhb-white) !important;
    font-family: 'Host Grotesk', 'Segoe UI', -apple-system, BlinkMacSystemFont, Arial, sans-serif;
    font-size: 13.5px;
    font-weight: 600;
    line-height: 1;
    text-decoration: none !important;
    border: 1px solid rgba(255,255,255,0.15);
    border-radius: 999px;
    padding: 11px 18px 11px 14px;
    box-shadow: 0 6px 18px rgba(0,51,102,0.28);
    transition: background .18s ease, transform .18s ease, box-shadow .18s ease;
  }

  .fdhb-btn:hover {
    background: var(--fdhb-bright);
    transform: translateY(-2px);
    box-shadow: 0 10px 22px rgba(0,51,102,0.34);
  }

  .fdhb-btn:focus-visible {
    outline: 3px solid var(--fdhb-bright);
    outline-offset: 2px;
  }

  .fdhb-btn svg {
    width: 17px;
    height: 17px;
    flex: 0 0 auto;
    fill: none;
    stroke: var(--fdhb-white);
    stroke-width: 2;
    stroke-linecap: round;
    stroke-linejoin: round;
  }

  .fdhb-btn span { display: inline-block; }

  @media (max-width: 480px) {
    .fdhb-btn { left: 12px; bottom: 12px; padding: 11px; }
    /* Icon-only on small screens so the button never crowds mobile content */
    .fdhb-btn span { display: none; }
  }

  @media (prefers-reduced-motion: reduce) {
    .fdhb-btn { transition: none; }
  }