@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/PlayfairDisplay-Medium.woff2") format("woff2"),
       url("../fonts/PlayfairDisplay-Medium.woff") format("woff");
}

@font-face {
  font-family: "Playfair Display";
  font-style: normal;
  font-weight: 900;
  font-display: swap;
  src: url("../fonts/PlayfairDisplay-Black.woff2") format("woff2"),
       url("../fonts/PlayfairDisplay-Black.woff") format("woff");
}

@font-face {
  font-family: "Inclusive Sans";
  font-style: normal;
  font-weight: 100 900;
  font-display: swap;
  src: url("../fonts/InclusiveSans-VariableFont_wght.ttf") format("truetype");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/Inter-Regular.woff2") format("woff2"),
       url("../fonts/Inter-Regular.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/Inter-Medium.woff2") format("woff2"),
       url("../fonts/Inter-Medium.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/Inter-SemiBold.woff2") format("woff2"),
       url("../fonts/Inter-SemiBold.woff") format("woff");
}

@font-face {
  font-family: "Inter";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/Inter-Bold.woff2") format("woff2"),
       url("../fonts/Inter-Bold.woff") format("woff");
}

@font-face {
  font-family: "Inter Tight";
  font-style: normal;
  font-weight: 400;
  font-display: swap;
  src: url("../fonts/InterTight-Regular.woff2") format("woff2"),
       url("../fonts/InterTight-Regular.woff") format("woff");
}

@font-face {
  font-family: "Inter Tight";
  font-style: normal;
  font-weight: 500;
  font-display: swap;
  src: url("../fonts/InterTight-Medium.woff2") format("woff2"),
       url("../fonts/InterTight-Medium.woff") format("woff");
}

@font-face {
  font-family: "Inter Tight";
  font-style: normal;
  font-weight: 600;
  font-display: swap;
  src: url("../fonts/InterTight-SemiBold.woff2") format("woff2"),
       url("../fonts/InterTight-SemiBold.woff") format("woff");
}

@font-face {
  font-family: "Inter Tight";
  font-style: normal;
  font-weight: 700;
  font-display: swap;
  src: url("../fonts/InterTight-Bold.woff2") format("woff2"),
       url("../fonts/InterTight-Bold.woff") format("woff");
}

@layer reset, tokens, base, utilities;

@layer tokens {
  :root {
    --lj-root-font-size: 16px;
    --lj-container: 1200px;
    --lj-container-wide: 1400px;
    --lj-gutter-desktop: 32px;
    --lj-gutter-mobile: 20px;
  }
}

@layer reset {
  *,
  *::before,
  *::after {
    box-sizing: border-box;
  }

  html {
    font-size: var(--lj-root-font-size) !important;
    scroll-behavior: smooth;
  }

  body {
    margin: 0;
  }

  img {
    display: block;
    max-width: 100%;
    height: auto;
  }
}

@layer base {
  .lj-site {
    max-width: 100%;
    overflow-x: clip;
  }

  /* Home page emergency full-width lock: bypass any theme/global wrapper constraints */
  :is(body.home, body.front-page) .wp-site-blocks,
  :is(body.home, body.front-page) .wp-block-post-content,
  :is(body.home, body.front-page) .is-layout-constrained,
  :is(body.home, body.front-page) .is-layout-flow,
  :is(body.home, body.front-page) #brx-content,
  :is(body.home, body.front-page) .brx-main,
  :is(body.home, body.front-page) .brx-content,
  :is(body.home, body.front-page) .site-content,
  :is(body.home, body.front-page) #main,
  :is(body.home, body.front-page) .site-main,
  :is(body.home, body.front-page) .content-area,
  :is(body.home, body.front-page) article.post,
  :is(body.home, body.front-page) article.page,
  :is(body.home, body.front-page) article.type-page,
  :is(body.home, body.front-page) article[id^="post-"],
  :is(body.home, body.front-page) .entry-content,
  :is(body.home, body.front-page) main,
  :is(body.home, body.front-page) #main-content {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  :is(body.home, body.front-page) .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)),
  :is(body.home, body.front-page) #brx-content > *,
  :is(body.home, body.front-page) #main > *,
  :is(body.home, body.front-page) .site-main > *,
  :is(body.home, body.front-page) .content-area > *,
  :is(body.home, body.front-page) .entry-content > * {
    max-width: none !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Final escape hatch: force Home content to viewport width even inside unknown parent wrappers */
  :is(body.home, body.front-page) #main-content,
  :is(body.home, body.front-page) .site-header {
    width: 100vw !important;
    max-width: 100vw !important;
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
  }

  :is(body.home, body.front-page) #main-content > * {
    width: 100% !important;
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Hard isolation against block-theme wrapper constraints on seeded pages */
  .lj-seeded-page .wp-site-blocks,
  .lj-seeded-page .wp-block-post-content,
  .lj-seeded-page .is-layout-constrained,
  .lj-seeded-page .is-layout-flow {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .lj-seeded-page .is-layout-constrained > :where(:not(.alignleft):not(.alignright):not(.alignfull)) {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  .lj-seeded-page .alignwide,
  .lj-seeded-page .alignfull {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
  }

  /* Seeded static pages already include their own hero/title structure. */
  .lj-seeded-page .entry-title,
  .lj-seeded-page .post-title,
  .lj-seeded-page .page-title,
  .lj-seeded-page .wp-block-post-title,
  .lj-seeded-page .brxe-post-title,
  .lj-seeded-page .entry-header,
  .lj-seeded-page .bricks-page-title-wrapper,
  .lj-seeded-page .bricks-page-title {
    display: none !important;
  }

  .lj-seeded-page #brx-content,
  .lj-seeded-page .brx-main,
  .lj-seeded-page .brx-content,
  .lj-seeded-page .site-content,
  .lj-seeded-page #main,
  .lj-seeded-page .site-main,
  .lj-seeded-page .content-area,
  .lj-seeded-page article.post,
  .lj-seeded-page article.page,
  .lj-seeded-page article.type-page,
  .lj-seeded-page article[id^="post-"],
  .lj-seeded-page .entry-content {
    max-width: none !important;
    width: 100% !important;
    margin: 0 !important;
    padding: 0 !important;
  }

  .lj-seeded-page #brx-content > *,
  .lj-seeded-page #main > *,
  .lj-seeded-page .site-main > *,
  .lj-seeded-page .content-area > * {
    margin-inline: 0 !important;
    max-width: none !important;
  }

  .lj-seeded-page .entry-content > :first-child {
    margin-top: 0 !important;
  }
}

@layer utilities {
  .lj-container {
    width: 100%;
    max-width: var(--lj-container);
    margin-inline: auto;
    padding-inline: var(--lj-gutter-desktop);
  }

  .lj-container--wide {
    max-width: var(--lj-container-wide);
  }

  @media (max-width: 767px) {
    .lj-container {
      padding-inline: var(--lj-gutter-mobile);
    }
  }
}
