/*
 * Fanatic Pick'ems mobile foundation.
 *
 * This file intentionally contains only narrow, page-scoped overrides. It is
 * loaded after the feature stylesheets so desktop layouts remain unchanged.
 */

/* Keep padding and borders inside every custom surface. */
:where(
  .fpc-site-menu,
  .fpc-locker-room-shell,
  .fpc-weekly-shell,
  .fpc-cfb-detail-main,
  .fpc-hub-shell,
  .fpc-demo,
  .fpc-auth-root,
  .fpc-contact-hero,
  .fpc-contact-content,
  .fpc-access-modal,
  .fpc-account-hero,
  .fpc-profile-hero,
  .fpcfb-shell
),
:where(
  .fpc-site-menu,
  .fpc-locker-room-shell,
  .fpc-weekly-shell,
  .fpc-cfb-detail-main,
  .fpc-hub-shell,
  .fpc-demo,
  .fpc-auth-root,
  .fpc-contact-hero,
  .fpc-contact-content,
  .fpc-access-modal,
  .fpc-account-hero,
  .fpc-profile-hero,
  .fpcfb-shell
)::before,
:where(
  .fpc-site-menu,
  .fpc-locker-room-shell,
  .fpc-weekly-shell,
  .fpc-cfb-detail-main,
  .fpc-hub-shell,
  .fpc-demo,
  .fpc-auth-root,
  .fpc-contact-hero,
  .fpc-contact-content,
  .fpc-access-modal,
  .fpc-account-hero,
  .fpc-profile-hero,
  .fpcfb-shell
)::after,
:where(
  .fpc-site-menu,
  .fpc-locker-room-shell,
  .fpc-weekly-shell,
  .fpc-cfb-detail-main,
  .fpc-hub-shell,
  .fpc-demo,
  .fpc-auth-root,
  .fpc-contact-hero,
  .fpc-contact-content,
  .fpc-access-modal,
  .fpc-account-hero,
  .fpc-profile-hero,
  .fpcfb-shell
) *,
:where(
  .fpc-site-menu,
  .fpc-locker-room-shell,
  .fpc-weekly-shell,
  .fpc-cfb-detail-main,
  .fpc-hub-shell,
  .fpc-demo,
  .fpc-auth-root,
  .fpc-contact-hero,
  .fpc-contact-content,
  .fpc-access-modal,
  .fpc-account-hero,
  .fpc-profile-hero,
  .fpcfb-shell
) *::before,
:where(
  .fpc-site-menu,
  .fpc-locker-room-shell,
  .fpc-weekly-shell,
  .fpc-cfb-detail-main,
  .fpc-hub-shell,
  .fpc-demo,
  .fpc-auth-root,
  .fpc-contact-hero,
  .fpc-contact-content,
  .fpc-access-modal,
  .fpc-account-hero,
  .fpc-profile-hero,
  .fpcfb-shell
) *::after {
  box-sizing: border-box;
}

:where(.fpc-pwa-dialog, .fpc-locker-update-dialog),
:where(.fpc-pwa-dialog, .fpc-locker-update-dialog)::before,
:where(.fpc-pwa-dialog, .fpc-locker-update-dialog)::after,
:where(.fpc-pwa-dialog, .fpc-locker-update-dialog) *,
:where(.fpc-pwa-dialog, .fpc-locker-update-dialog) *::before,
:where(.fpc-pwa-dialog, .fpc-locker-update-dialog) *::after {
  box-sizing: border-box;
}

/* Dynamic viewport units prevent browser chrome from clipping app surfaces. */
.fpc-site-menu-drawer,
.fpc-locker-room-shell,
.fpc-weekly-shell,
.fpc-hub-shell {
  min-height: 100dvh;
}

.fpc-site-menu-drawer {
  height: 100dvh;
}

.fpc-access-modal,
.fpc-pwa-dialog,
.fpc-locker-update-dialog,
.fpc-demo-tour {
  min-height: 100dvh;
  max-height: 100dvh;
  overscroll-behavior: contain;
}

.fpc-access-modal,
.fpc-pwa-dialog,
.fpc-locker-update-dialog {
  place-items: safe center !important;
}

.fpc-access-dialog,
.fpc-pwa-dialog section,
.fpc-locker-update-dialog section,
.fpc-demo-tour > section {
  max-height: calc(100dvh - 24px - env(safe-area-inset-top) - env(safe-area-inset-bottom)) !important;
  overflow-y: auto !important;
  overscroll-behavior: contain;
  -webkit-overflow-scrolling: touch;
}

/* Consistent, thumb-friendly interactive controls. */
.fpc-stay-logged-in label,
.fpc-access-unregister,
.fpc-access-close,
.fpc-access-dialog-actions button,
.fpc-access-gate-actions button,
.fpc-locker-update-close,
.fpc-locker-app-update a,
.fpc-locker-update-dialog section > a,
.fpc-locker-footer-links a,
.fpc-demo-menu-toggle,
.fpc-demo-tools button,
.fpc-demo-header nav a,
.fpc-demo-button,
.fpc-demo-tour button,
.fpc-rules-back,
.fpc-rules-center-card,
.fpc-locker-game-link,
.fpc-cfb-primary,
.fpc-cfb-secondary,
.fpc-cfb-detail-registration .pickem-card .btn {
  min-height: 44px;
}

.fpc-stay-logged-in label,
.fpc-locker-footer-links a {
  align-items: center;
}

.fpc-locker-footer-links a {
  padding-block: 10px;
  display: inline-flex;
}

.fpc-access-unregister,
.fpc-access-close,
.fpc-locker-update-close,
.fpc-pwa-dialog-close,
.fpc-locker-error button {
  min-width: 44px;
  min-height: 44px;
}

/* Scrollable standings keep the player column in view. */
.fpc-table-wrap,
.fpcfb-table-wrap,
body.fpc-cfb-detail-standings #tableCard {
  max-width: 100%;
  overflow-x: auto !important;
  overscroll-behavior-inline: contain;
  -webkit-overflow-scrolling: touch;
}

body.fpc-cfb-detail-standings #tbl :is(th, td):first-child,
.fpc-table :is(th, td):first-child,
.fpcfb-standings :is(th, td):first-child {
  position: sticky;
  left: 0;
  z-index: 2;
  background: #071a3b !important;
  box-shadow: 1px 0 0 rgba(255, 255, 255, .13);
}

body.fpc-cfb-detail-standings #tbl thead th:first-child,
.fpc-table thead th:first-child,
.fpcfb-standings thead th:first-child {
  z-index: 4;
}

@media (max-width: 900px) {
  body.fpc-profile-page {
    background-attachment: scroll !important;
  }
}

@media (max-width: 760px) {
  /* Elementor's shared footer uses content-box widths; contain it everywhere. */
  body:not(.wp-admin) #colophon,
  body:not(.wp-admin) #colophon *,
  body:not(.wp-admin) footer,
  body:not(.wp-admin) footer * {
    box-sizing: border-box;
  }

  body:not(.wp-admin) #colophon,
  body:not(.wp-admin) footer {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    overflow: hidden !important;
  }

  body:not(.wp-admin) #colophon :is(.elementor, .elementor-element, .e-con-inner, .elementor-widget-container),
  body:not(.wp-admin) footer :is(.elementor, .elementor-element, .e-con-inner, .elementor-widget-container) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    inset-inline: auto !important;
  }

  /* Fix the theme's negative full-bleed calculation on the Locker Room. */
  .fpc-locker-room-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    overflow-x: clip;
  }

  /* iOS safe areas for custom chrome and fixed panels. */
  .fpc-locker-header,
  .fpc-weekly-header,
  .fpc-cfb-detail-header,
  .fpc-hub-header {
    padding-top: max(9px, env(safe-area-inset-top));
    padding-right: max(16px, env(safe-area-inset-right));
    padding-left: max(16px, env(safe-area-inset-left));
  }

  .fpc-demo-banner {
    padding-top: max(8px, env(safe-area-inset-top));
    padding-right: max(12px, env(safe-area-inset-right));
    padding-left: max(12px, env(safe-area-inset-left));
  }

  .fpc-demo-header {
    padding-right: max(14px, env(safe-area-inset-right));
    padding-left: max(14px, env(safe-area-inset-left));
  }

  .fpc-site-menu-head {
    padding-top: max(20px, env(safe-area-inset-top));
    padding-right: max(22px, env(safe-area-inset-right));
    padding-left: max(22px, env(safe-area-inset-left));
  }

  .fpc-site-menu-scroll,
  .fpc-site-menu-foot {
    padding-right: max(22px, env(safe-area-inset-right)) !important;
    padding-left: max(22px, env(safe-area-inset-left)) !important;
  }

  .fpc-site-menu-foot {
    padding-bottom: max(18px, env(safe-area-inset-bottom)) !important;
  }

  .fpc-site-menu-toggle.is-floating {
    top: max(16px, calc(env(safe-area-inset-top) + 8px));
    right: max(16px, env(safe-area-inset-right));
  }

  .fpc-access-modal,
  .fpc-pwa-dialog,
  .fpc-locker-update-dialog,
  .fpc-demo-tour {
    padding-top: max(12px, env(safe-area-inset-top)) !important;
    padding-right: max(12px, env(safe-area-inset-right)) !important;
    padding-bottom: max(12px, env(safe-area-inset-bottom)) !important;
    padding-left: max(12px, env(safe-area-inset-left)) !important;
    overflow-y: auto;
  }

  .fpc-access-modal,
  .fpc-pwa-dialog,
  .fpc-locker-update-dialog {
    align-items: safe center;
  }

  .fpc-demo-tour {
    align-items: safe end;
  }

  .fpc-pwa-install {
    right: max(16px, env(safe-area-inset-right)) !important;
    bottom: max(16px, env(safe-area-inset-bottom)) !important;
    left: auto !important;
  }

  .fpc-locker-main,
  .fpc-weekly-main,
  .fpc-cfb-detail-main,
  .fpc-hub-main,
  .fpc-demo-main {
    padding-bottom: calc(62px + env(safe-area-inset-bottom)) !important;
  }

  body.fpc-contact-page #masthead,
  body.fpc-account-page #masthead,
  body.fpc-profile-page #masthead {
    padding-right: env(safe-area-inset-right);
    padding-left: env(safe-area-inset-left);
  }

  body.fpc-contact-page footer,
  body.fpc-account-page footer,
  body.fpc-profile-page footer,
  body.fpc-cfb-detail-page footer,
  body.fpc-hub-page footer,
  .fpc-demo-footer {
    max-width: 100%;
    padding-right: max(14px, env(safe-area-inset-right)) !important;
    padding-bottom: max(20px, env(safe-area-inset-bottom)) !important;
    padding-left: max(14px, env(safe-area-inset-left)) !important;
    overflow: hidden;
    overflow-wrap: anywhere;
  }

  body.fpc-account-page footer *,
  body.fpc-profile-page footer * {
    min-width: 0;
    max-width: 100%;
    overflow-wrap: anywhere;
  }

  /* Prevent iOS zoom while preserving the custom form appearance. */
  body.fpc-auth-page :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  body.fpc-contact-page :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  body.page-id-2698 :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  body.fpc-account-page .um-account :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  body.fpc-profile-page .um-profile :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  body.fpc-cfb-detail-standings :is(#displaySel, #playerSel),
  body.fpc-cfb-detail-registration .pickem-card :is(input, select, textarea),
  .fpcfb-shell :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    font-size: 16px !important;
  }

  body.page-id-2698 .fpc-contact-form :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea),
  body.page-id-2698 .fluentform :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    font-size: 16px !important;
  }

  /* Remove old Elementor negative offsets from the mobile Account shortcode. */
  body.fpc-account-page .elementor-1121 > .elementor-section {
    padding-top: 24px !important;
  }

  body.fpc-account-page .elementor-1121 :is(
    .elementor-widget-wrap,
    .elementor-widget-shortcode,
    .elementor-widget-shortcode > .elementor-widget-container,
    .elementor-widget-shortcode .elementor-shortcode
  ) {
    margin-top: 0 !important;
    transform: none !important;
  }

  /* The embedded weekly picker must never widen the page. */
  .fpc-weekly-app,
  .fpcfb-shell,
  .fpcfb-content,
  .fpcfb-games,
  .fpcfb-game,
  .fpcfb-form {
    width: 100% !important;
    max-width: 100% !important;
    min-width: 0 !important;
  }

  .fpcfb-shell {
    margin: 0 !important;
    padding: 16px !important;
    overflow: hidden;
    border-radius: 16px !important;
  }

  .fpcfb-account,
  .fpcfb-weekbar,
  .fpcfb-games {
    grid-template-columns: minmax(0, 1fr) !important;
  }

  .fpcfb-game {
    padding: 12px !important;
  }

  .fpcfb-game-meta {
    display: grid !important;
    gap: 4px !important;
  }

  .fpcfb-team {
    min-width: 0;
    min-height: 52px;
    padding: 13px 12px;
  }

  .fpcfb-team > span,
  .fpcfb-team strong,
  .fpcfb-account strong,
  .fpcfb-weekbar strong {
    min-width: 0;
    overflow-wrap: anywhere;
  }

  .fpcfb-button {
    width: 100%;
    min-height: 48px;
  }

  .fpcfb-standings {
    min-width: 600px;
  }

  /* A visible mobile cue makes horizontal standings discoverable. */
  body.fpc-cfb-detail-standings #tableCard::before {
    content: "Swipe to view all columns \2192";
    width: max-content;
    margin: 10px;
    padding: 7px 10px;
    position: sticky;
    left: 10px;
    z-index: 6;
    display: block;
    color: #9ddfff;
    background: rgba(7, 26, 59, .96);
    border: 1px solid rgba(53, 184, 237, .28);
    border-radius: 999px;
    font-size: 10px;
    font-weight: 900;
    letter-spacing: .06em;
    text-transform: uppercase;
    pointer-events: none;
  }

  /* Footer and update links become full, forgiving touch rows. */
  .fpc-locker-app-update nav {
    width: 100%;
    align-items: stretch;
    display: grid;
    grid-template-columns: 1fr;
    gap: 2px;
  }

  .fpc-locker-app-update a,
  .fpc-locker-update-dialog section > a {
    width: 100%;
    justify-content: flex-start;
  }

  .fpc-demo-tools button,
  .fpc-demo-menu-toggle,
  .fpc-demo-header nav a,
  .fpc-demo-button {
    display: inline-flex;
    align-items: center;
    justify-content: center;
  }

  .fpc-rules-back,
  .fpc-locker-game-link,
  .fpc-cfb-primary,
  .fpc-cfb-secondary {
    align-items: center;
    justify-content: center;
  }
}

/*
 * Mobile continuity for the few remaining legacy/system utility pages. These
 * selectors are deliberately page-specific so the modern production screens
 * and Elementor editor remain untouched.
 */
@media (max-width: 760px) {
  body:is(
    .page-id-923,
    .page-id-1122,
    .page-id-2033,
    .page-id-4288,
    .page-id-12042,
    .page-id-12566,
    .page-id-13545,
    .page-id-14988
  ) {
    min-height: 100dvh;
    margin: 0 !important;
    overflow-x: hidden !important;
    color: #f8fbff !important;
    background:
      radial-gradient(circle at 86% 10%, rgba(8, 121, 209, .25), transparent 25rem),
      radial-gradient(circle at 4% 80%, rgba(29, 78, 216, .13), transparent 32rem),
      linear-gradient(145deg, #020817, #04142f 55%, #020817) !important;
    font-family: "Nunito Sans", ui-sans-serif, system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", sans-serif !important;
  }

  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) #masthead {
    display: none !important;
  }

  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) #page,
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) article,
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) .elementor,
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) .elementor > .elementor-element {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
  }

  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) footer {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    padding: 22px 16px max(22px, env(safe-area-inset-bottom)) !important;
    overflow: hidden !important;
    color: #8297ae !important;
    background: #020817 !important;
  }

  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) footer *,
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) footer .elementor-element,
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566, .page-id-13545, .page-id-14988) footer .elementor-widget-container {
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    overflow-wrap: anywhere !important;
    color: inherit !important;
    font-size: 11px !important;
    line-height: 1.55 !important;
    text-align: center !important;
  }

  /* NFL Survivor weekly picker: retain the live logic, replace the old frame. */
  body.page-id-13545 .elementor-widget-image {
    display: none !important;
  }

  body.page-id-13545 .elementor-widget-container,
  body.page-id-13545 .elementor-13545 {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    inset: auto !important;
  }

  body.page-id-13545 .wrap {
    width: 100% !important;
    max-width: 760px !important;
    margin: 0 auto !important;
    padding: max(82px, calc(env(safe-area-inset-top) + 68px)) 14px 42px !important;
    display: block !important;
  }

  body.page-id-13545 .card {
    width: 100% !important;
    max-width: 720px !important;
    margin: 0 auto !important;
    border: 1px solid rgba(53, 184, 237, .28) !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    background: linear-gradient(145deg, rgba(11, 42, 88, .98), rgba(4, 19, 45, .99)) !important;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .35) !important;
  }

  body.page-id-13545 header.head {
    padding: 24px 18px !important;
    background: linear-gradient(135deg, rgba(8, 121, 209, .28), rgba(242, 140, 40, .10)) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
  }

  body.page-id-13545 header.head h1 {
    margin: 0 !important;
    color: #fff !important;
    font-family: Oswald, Impact, sans-serif !important;
    font-size: clamp(30px, 10vw, 42px) !important;
    line-height: 1 !important;
    letter-spacing: .02em !important;
    text-transform: uppercase !important;
  }

  body.page-id-13545 main.body {
    padding: 18px !important;
    gap: 14px !important;
  }

  body.page-id-13545 .panel {
    padding: 0 !important;
    border: 0 !important;
    background: transparent !important;
  }

  body.page-id-13545 .grid-2 {
    display: grid !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  body.page-id-13545 .info-row {
    min-width: 0 !important;
    min-height: 72px !important;
    padding: 14px !important;
    border: 1px solid rgba(255, 255, 255, .13) !important;
    border-radius: 15px !important;
    background: rgba(255, 255, 255, .045) !important;
  }

  body.page-id-13545 .label {
    color: #a9bfd7 !important;
    font-size: 12px !important;
    font-weight: 800 !important;
    letter-spacing: .08em !important;
    text-transform: uppercase !important;
  }

  body.page-id-13545 .value {
    min-width: 0 !important;
    color: #fff !important;
    font-size: 16px !important;
    overflow-wrap: anywhere !important;
  }

  body.page-id-13545 .callout {
    padding: 15px !important;
    border-radius: 14px !important;
    color: #dbeaff !important;
    background: rgba(255, 255, 255, .05) !important;
  }

  body.page-id-13545 .btn {
    min-height: 48px !important;
    padding: 12px 18px !important;
    border-radius: 13px !important;
    font-size: 16px !important;
    font-weight: 900 !important;
  }

  /* NFL Survivor registration: one compact, centered registration card. */
  body.page-id-14988 .elementor-14988 > .elementor-element:first-child,
  body.page-id-14988 .elementor-14988 .elementor-widget-image,
  body.page-id-14988 .elementor-14988 .elementor-widget-heading {
    display: none !important;
  }

  body.page-id-14988 .elementor-14988,
  body.page-id-14988 .elementor-14988 > .elementor-element,
  body.page-id-14988 .elementor-14988 .elementor-widget-container {
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
    inset: auto !important;
  }

  body.page-id-14988 .survivor-wrap {
    width: 100% !important;
    max-width: 720px !important;
    margin: 0 auto !important;
    padding: max(82px, calc(env(safe-area-inset-top) + 68px)) 14px 42px !important;
    display: block !important;
  }

  body.page-id-14988 .survivor-card {
    width: 100% !important;
    max-width: 620px !important;
    margin: 0 auto !important;
    padding-top: 18px !important;
    border: 1px solid rgba(53, 184, 237, .28) !important;
    border-radius: 22px !important;
    overflow: hidden !important;
    background: linear-gradient(145deg, rgba(11, 42, 88, .98), rgba(4, 19, 45, .99)) !important;
    box-shadow: 0 22px 60px rgba(0, 0, 0, .35) !important;
  }

  body.page-id-14988 .survivor-card::before {
    content: "";
    width: 96px;
    height: 88px;
    margin: 0 auto 4px;
    display: block;
    background: url("game-logos/nfl-survivor-256.webp") center / contain no-repeat;
  }

  body.page-id-14988 .card-head {
    padding: 14px 18px 20px !important;
    border-bottom: 1px solid rgba(255, 255, 255, .12) !important;
    background: linear-gradient(135deg, rgba(8, 121, 209, .24), rgba(242, 140, 40, .08)) !important;
  }

  body.page-id-14988 .card-head h2 {
    margin: 0 !important;
    color: #fff !important;
    font-family: Oswald, Impact, sans-serif !important;
    font-size: clamp(27px, 9vw, 38px) !important;
    line-height: 1.04 !important;
    text-align: center !important;
    text-transform: uppercase !important;
  }

  body.page-id-14988 .card-body,
  body.page-id-14988 .actions {
    padding: 18px !important;
  }

  body.page-id-14988 .info,
  body.page-id-14988 .modes {
    width: 100% !important;
    grid-template-columns: minmax(0, 1fr) !important;
    gap: 12px !important;
  }

  body.page-id-14988 .info-row,
  body.page-id-14988 .tile {
    min-width: 0 !important;
    min-height: 64px !important;
    padding: 14px !important;
    border: 1px solid rgba(255, 255, 255, .13) !important;
    border-radius: 15px !important;
    background: rgba(255, 255, 255, .045) !important;
  }

  body.page-id-14988 .value,
  body.page-id-14988 .t-title,
  body.page-id-14988 .t-sub,
  body.page-id-14988 .mode-label {
    min-width: 0 !important;
    max-width: 100% !important;
    overflow-wrap: anywhere !important;
  }

  body.page-id-14988 :is(.label, .mode-label) {
    color: #a9bfd7 !important;
  }

  body.page-id-14988 :is(.value, .t-title) {
    color: #f8fbff !important;
  }

  body.page-id-14988 .t-sub {
    color: #b3c4d8 !important;
  }

  body.page-id-14988 input[type="radio"] {
    width: 22px !important;
    height: 22px !important;
    accent-color: #f28c28;
  }

  body.page-id-14988 .btn {
    width: 100% !important;
    min-height: 50px !important;
    border-radius: 13px !important;
    font-size: 16px !important;
    font-weight: 900 !important;
  }

  /* Squares, tiebreaker and credits utility pages. */
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566) > .elementor,
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566) #page > .elementor,
  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566) article > .elementor {
    width: min(720px, calc(100% - 28px)) !important;
    margin: 0 auto !important;
    padding-top: max(82px, calc(env(safe-area-inset-top) + 68px)) !important;
    padding-bottom: 42px !important;
  }

  body:is(.page-id-923, .page-id-4288) .elementor > .elementor-element,
  body:is(.page-id-12042, .page-id-12566) .elementor > .elementor-element:first-child {
    margin: 0 0 16px !important;
    padding: 22px 18px !important;
    border: 1px solid rgba(53, 184, 237, .24) !important;
    border-radius: 20px !important;
    overflow: hidden !important;
    color: #dbeaff !important;
    background: linear-gradient(145deg, rgba(11, 42, 88, .96), rgba(4, 19, 45, .98)) !important;
    box-shadow: 0 20px 52px rgba(0, 0, 0, .30) !important;
  }

  body:is(.page-id-923, .page-id-4288, .page-id-12042, .page-id-12566) :is(h1, h2, h3) {
    color: #fff !important;
    font-family: Oswald, Impact, sans-serif !important;
    line-height: 1.04 !important;
    text-transform: uppercase !important;
    overflow-wrap: anywhere !important;
  }

  body:is(.page-id-12042, .page-id-12566) .elementor-widget-image img {
    content: url("game-logos/super-bowl-squares-256.webp");
    width: 132px !important;
    min-width: 132px !important;
    max-width: 132px !important;
    height: 122px !important;
    object-fit: contain !important;
  }

  body:is(.page-id-12042, .page-id-12566) .elementor > .elementor-element:first-child > .e-con-inner {
    display: flex !important;
    flex-direction: column !important;
    align-items: stretch !important;
  }

  body:is(.page-id-12042, .page-id-12566) .elementor > .elementor-element:first-child .elementor-widget-heading {
    order: 1;
    margin: 0 0 12px !important;
  }

  body:is(.page-id-12042, .page-id-12566) .elementor > .elementor-element:first-child .elementor-widget-image {
    position: static !important;
    order: 2;
    width: 100% !important;
    margin: 0 auto 14px !important;
    transform: none !important;
  }

  body:is(.page-id-12042, .page-id-12566) .elementor > .elementor-element:first-child .elementor-widget-image > .elementor-widget-container {
    margin: 0 !important;
  }

  body:is(.page-id-12042, .page-id-12566) .elementor > .elementor-element:first-child .elementor-widget-text-editor {
    order: 3;
    margin: 0 !important;
  }

  body:is(.page-id-12042, .page-id-12566) .elementor :is(
    .elementor-widget-container,
    .elementor-heading-title,
    .elementor-button-wrapper,
    .elementor-widget-html
  ) {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    inset-inline: auto !important;
    transform: none !important;
  }

  /* Correct the old visual label while the historical Credits page remains. */
  body.page-id-923 .elementor-widget-heading h2 {
    font-size: 0 !important;
  }

  body.page-id-923 .elementor-widget-heading h2::before {
    content: "Fanatic Pick'ems Credits";
    font-size: clamp(30px, 10vw, 46px);
  }

  body:is(.page-id-12042, .page-id-12566) .elementor-button {
    width: 100% !important;
    min-height: 50px !important;
    padding: 13px 16px !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    border: 1px solid rgba(242, 140, 40, .55) !important;
    border-radius: 13px !important;
    color: #fff !important;
    background: linear-gradient(135deg, #f28c28, #d96c00) !important;
    font-size: 15px !important;
    font-weight: 900 !important;
    text-align: center !important;
  }

  body:is(.page-id-4288, .page-id-12042, .page-id-12566) iframe {
    width: 100% !important;
    max-width: 100% !important;
    min-height: 680px;
    border: 0 !important;
    border-radius: 16px;
    background: #fff;
  }

  /* Ultimate Member reset/activation pages get a clean public recovery card. */
  body:is(.page-id-1122, .page-id-2033) .wp-site-blocks > header {
    min-height: 66px;
    padding: max(14px, env(safe-area-inset-top)) 18px 14px !important;
    color: #fff !important;
    background: rgba(3, 18, 44, .96) !important;
    border-bottom: 1px solid rgba(255, 255, 255, .10);
  }

  body:is(.page-id-1122, .page-id-2033) .wp-site-blocks > header nav,
  body:is(.page-id-1122, .page-id-2033) .wp-site-blocks > footer {
    display: none !important;
  }

  body:is(.page-id-1122, .page-id-2033) .wp-site-blocks > header a {
    color: #fff !important;
    font-weight: 900 !important;
    text-decoration: none !important;
  }

  body:is(.page-id-1122, .page-id-2033) main {
    width: min(620px, calc(100% - 28px)) !important;
    min-height: calc(100dvh - 66px) !important;
    margin: 0 auto !important;
    padding: 42px 0 max(42px, env(safe-area-inset-bottom)) !important;
  }

  body:is(.page-id-1122, .page-id-2033) main > :is(h1, .wp-block-post-title) {
    margin: 0 !important;
    padding: 24px 20px 6px !important;
    color: #fff !important;
    background: #071a3b !important;
    border: 1px solid rgba(53, 184, 237, .24) !important;
    border-bottom: 0 !important;
    border-radius: 20px 20px 0 0 !important;
    font-family: Oswald, Impact, sans-serif !important;
    font-size: clamp(32px, 10vw, 44px) !important;
    line-height: 1 !important;
    text-transform: uppercase !important;
  }

  body:is(.page-id-1122, .page-id-2033) main > .entry-content,
  body:is(.page-id-1122, .page-id-2033) main > .wp-block-post-content {
    margin: 0 !important;
    padding: 14px 20px 24px !important;
    color: #dbeaff !important;
    background: #071a3b !important;
    border: 1px solid rgba(53, 184, 237, .24) !important;
    border-top: 0 !important;
    border-radius: 0 0 20px 20px !important;
  }

  body:is(.page-id-1122, .page-id-2033) :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    width: 100% !important;
    min-height: 48px !important;
    font-size: 16px !important;
  }

  body:is(.page-id-1122, .page-id-2033) :is(button, input[type="submit"], .um-button) {
    min-height: 48px !important;
    font-size: 16px !important;
  }
}

@media (max-width: 380px) {
  /* Stack game statuses so two pills cannot collide with the logo or title. */
  .fpc-hub-card {
    min-height: 230px;
  }

  .fpc-hub-status-stack {
    right: 16px;
    bottom: 14px;
    left: 16px;
    align-items: flex-start;
    flex-direction: column;
    flex-wrap: nowrap;
  }

  .fpc-hub-card-body {
    padding-bottom: 76px;
    grid-template-columns: minmax(0, 1fr) 68px;
  }

  .fpc-hub-card-art {
    height: 70px;
  }

  .fpc-hub-card-copy strong,
  .fpc-hub-card:not(.is-featured) .fpc-hub-card-copy strong {
    font-size: clamp(25px, 8vw, 30px);
  }

  /* Place rules logos in normal flow so long game names never sit beneath. */
  .fpc-rules-center-card {
    min-height: 0;
  }

  .fpc-rules-center-logo {
    width: 86px;
    height: 72px;
    margin: 10px 0 2px;
    position: static;
    align-self: flex-end;
    opacity: .55;
  }

  .fpc-rules-center-card strong {
    max-width: 100%;
  }

  /* Long display headings remain readable on narrow phones. */
  .fpc-locker-hero h1,
  .fpc-hub-hero h1,
  .fpc-weekly-hero h1,
  .fpc-cfb-detail-hero h1,
  .fpc-contact-hero h1,
  .fpc-account-hero h1,
  .fpc-profile-hero h1,
  .fpc-access-gate h1,
  .fpc-demo-hero h1,
  .fpc-demo-page-hero h1,
  .fpc-auth-intro h1 {
    font-size: clamp(38px, 13vw, 50px) !important;
    overflow-wrap: anywhere;
    text-wrap: balance;
  }

  .fpc-auth-card-header h2,
  .fpc-locker-update-dialog h2,
  .fpc-pwa-dialog h2,
  .fpc-access-dialog h2 {
    font-size: clamp(27px, 10vw, 36px) !important;
    overflow-wrap: anywhere;
  }

  .fpc-locker-game-copy h3,
  .fpc-rules-center-card strong,
  .fpc-rules-grid h3 {
    overflow-wrap: anywhere;
  }
}

@media (max-height: 620px) {
  /* Phone landscape: keep full-bleed Locker content inside the visible canvas. */
  .fpc-locker-room-shell {
    width: 100% !important;
    max-width: 100% !important;
    margin-right: 0 !important;
    margin-left: 0 !important;
    overflow-x: clip;
  }

  /* Prevent mobile browsers zooming form fields when a phone is rotated. */
  body:is(.fpc-account-page, .fpc-profile-page, .fpc-contact-page, .fpc-auth-page)
    :is(input:not([type="checkbox"]):not([type="radio"]), select, textarea) {
    font-size: 16px !important;
  }

  .fpc-access-modal,
  .fpc-pwa-dialog,
  .fpc-locker-update-dialog,
  .fpc-demo-tour {
    align-items: start !important;
  }

  .fpc-access-dialog,
  .fpc-pwa-dialog section,
  .fpc-locker-update-dialog section,
  .fpc-demo-tour > section {
    margin-block: auto;
  }
}
