/* Fluffy Shepherds Page Classes — v1.0.10 */
.fs-shell {
  --fs-ink: #17222b;
  --fs-muted: #626b70;
  --fs-paper: #f4efe6;
  --fs-paper-soft: #fbf9f5;
  --fs-line: #d8d1c6;
  --fs-accent: #b68a42;
  --fs-dark: #17242c;
  --fs-white: #fff;
  --fs-wide: 1180px;
  --fs-read: 760px;
  --fs-section: clamp(64px, 8vw, 108px);
  --fs-pad: clamp(24px, 5vw, 72px);
  box-sizing: border-box;
  color: var(--fs-ink);
  background: var(--fs-paper-soft);
  overflow: clip;
}

.fs-shell *, .fs-shell *::before, .fs-shell *::after { box-sizing: inherit; }
.fs-gateway, .fs-guide, .fs-editorial-body, .fs-pack-story { position: relative; }
.fs-shell :where(.wp-block-group, .wp-block-column) { min-width: 0; }
.fs-shell img { display: block; max-width: 100%; height: auto; }
.fs-wide { width: min(calc(100% - (2 * var(--fs-pad))), var(--fs-wide)); margin-inline: auto; }
.fs-reading { width: min(calc(100% - (2 * var(--fs-pad))), var(--fs-read)); margin-inline: auto; }
.fs-section { padding-block: var(--fs-section); }
.fs-eyebrow { margin: 0 0 22px; color: var(--fs-accent); font-size: .83rem; font-weight: 800; letter-spacing: .13em; line-height: 1.3; text-transform: uppercase; }
.fs-shell h1, .fs-shell h2, .fs-shell h3 { color: var(--fs-ink); overflow-wrap: normal; word-break: normal; hyphens: none; }
.fs-shell h1 { margin: 0 0 clamp(30px, 5vw, 54px); font-size: clamp(3rem, 7vw, 5.5rem); line-height: .98; letter-spacing: -.045em; }
.fs-shell h2 { margin-block: 0 28px; font-size: clamp(2.15rem, 4.2vw, 4rem); line-height: 1.04; letter-spacing: -.035em; }
.fs-shell h3 { line-height: 1.12; }
.fs-shell p, .fs-shell li { font-size: clamp(1.05rem, 1.25vw, 1.25rem); line-height: 1.65; }
.fs-shell a { text-underline-offset: .16em; }
.fs-arrow { display: inline-block; white-space: nowrap; }
.fs-hero { margin-block: 0 clamp(44px, 6vw, 76px); }
.fs-hero figcaption { color: var(--fs-muted); font-size: .9rem; text-align: center; }
.fs-prose > * + * { margin-top: 1.45em; }
.fs-lede { font-size: clamp(1.25rem, 1.8vw, 1.55rem) !important; line-height: 1.55 !important; }
.fs-meta, .fs-profile-meta, .fs-nav-label { color: var(--fs-muted); font-size: .9rem !important; }

.fs-callout, .fs-research-note { margin-block: 34px; padding: clamp(24px, 4vw, 34px); border-left: 4px solid var(--fs-accent); background: var(--fs-paper); }
.fs-research-note { background: var(--fs-white); border-top: 3px solid var(--fs-accent); border-left: 0; }
.fs-alert { margin-block: 34px; padding: clamp(28px, 5vw, 44px); border-left: 5px solid var(--fs-accent); background: var(--fs-dark); color: #f4f0e8; }
.fs-shell .fs-alert h2,
.fs-shell .fs-alert h3,
.fs-shell .fs-alert p { color: #f4f0e8; }
.fs-shell .fs-alert .fs-eyebrow { color: var(--fs-accent); }
.fs-alert h3 { font-size: clamp(1.8rem, 3.3vw, 2.8rem); }

.fs-card-grid { display: grid !important; grid-template-columns: repeat(auto-fit, minmax(min(100%, 290px), 1fr)); gap: 24px; }
.fs-card-grid > .wp-block-column { margin: 0 !important; }
.fs-card { height: 100%; padding: clamp(26px, 4vw, 38px); border-top: 3px solid var(--fs-accent); background: var(--fs-white); }
.fs-card h3 { margin-top: 0; font-size: clamp(1.45rem, 2.2vw, 2rem); }

.fs-onward { padding: clamp(38px, 6vw, 68px); background: var(--fs-dark); color: #f4f0e8; }
.fs-onward :where(h2, h3, p) { color: inherit; }
.fs-signoff { margin: 0; padding: 52px var(--fs-pad) 70px; }

.fs-split-section { background: var(--fs-white); }
.fs-split { display: grid !important; grid-template-columns: minmax(380px, .9fr) minmax(0, 1.1fr); gap: clamp(40px, 5vw, 70px); }
.fs-split > .wp-block-column { margin: 0 !important; }
.fs-split-title h2 { max-width: 580px; font-size: clamp(2.4rem, 3.6vw, 3.45rem); }
.fs-split-copy { max-width: 710px; }
.fs-professional-note { max-width: 850px; margin: 48px auto 0; color: var(--fs-muted); font-size: .95rem !important; }

.fs-editorial-body {
  width: min(100%, var(--fs-read));
  margin-inline: auto;
  padding: clamp(38px, 7vw, 76px);
  background: var(--fs-white);
  overflow: visible;
}
.fs-editorial-body > * + * { margin-top: 1.35em; }

body.single-post .post-navigation,
body.single-post .entry-related-inner-content {
  width: min(calc(100% - 56px), 1180px);
  max-width: 1180px;
  margin-inline: auto;
}
body.single-post .post-navigation .nav-links { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); }
body.single-post .post-navigation :where(.nav-previous, .nav-next) { min-width: 0; padding: clamp(28px, 4vw, 48px); }
body.single-post .post-navigation .nav-next { border-left: 1px solid #8b9499; }
body.single-post .post-navigation a,
body.single-post .entry-related .entry-title a { overflow-wrap: normal; word-break: normal; hyphens: none; }
body.single-post .entry-related-title { overflow-wrap: normal; word-break: normal; hyphens: none; }

.fs-profile-section:nth-of-type(even) { background: var(--fs-white); }
.fs-profile-row { display: grid !important; grid-template-columns: minmax(0, .95fr) minmax(360px, 1.05fr); align-items: center; gap: clamp(46px, 7vw, 92px); }
.fs-profile-row > .wp-block-column { margin: 0 !important; }
.fs-profile-row.is-style-image-left .fs-profile-image { order: -1; }
.fs-profile-copy { max-width: 650px; }
.fs-profile-image figure { margin: 0; }

@media (max-width: 900px) {
  .fs-split, .fs-profile-row { grid-template-columns: 1fr; }
  .fs-profile-row .fs-profile-image { order: -1; }
  .fs-editorial-body {
    width: 100%;
    padding: clamp(28px, 6vw, 46px);
  }
  body.single-post .post-navigation,
  body.single-post .entry-related-inner-content {
    width: calc(100% - 32px);
    max-width: none;
  }
  body.single-post .post-navigation .nav-links { grid-template-columns: 1fr; }
  body.single-post .post-navigation :where(.nav-previous, .nav-next) {
    border: 0 !important;
  }
  body.single-post .post-navigation :where(.nav-links, .nav-previous, .nav-next)::before,
  body.single-post .post-navigation :where(.nav-links, .nav-previous, .nav-next)::after {
    display: none !important;
    content: none !important;
  }
  body.single-post .entry-related { display: none !important; }
  body.single-post .entry-related-carousel .splide__arrows,
  body.single-post .entry-related-carousel .splide__pagination { display: none !important; }
  body.single-post .entry-related-carousel .splide__track {
    height: auto !important;
    min-height: 0 !important;
    overflow: visible;
  }
  body.single-post .entry-related-carousel .splide__list {
    display: grid !important;
    grid-template-columns: 1fr;
    grid-auto-rows: max-content !important;
    gap: 24px;
    height: auto !important;
    min-height: 0 !important;
    align-items: start;
    transform: none !important;
  }
  body.single-post .entry-related-carousel .splide__slide--clone { display: none !important; }
  body.single-post .entry-related-carousel .splide__slide:not(.splide__slide--clone) {
    display: block !important;
    width: 100% !important;
    max-width: none !important;
    height: fit-content !important;
    min-height: 0 !important;
    margin: 0 !important;
  }
  body.single-post .entry-related-carousel .loop-entry,
  body.single-post .entry-related-carousel .entry-content-wrap {
    height: auto !important;
    min-height: 0 !important;
  }
  body.single-post .entry-related-carousel .loop-entry {
    align-self: start !important;
  }
  body.single-post .entry-related-carousel .entry-content-wrap {
    display: block !important;
    justify-content: initial !important;
    padding: 32px !important;
  }
}

@media (max-width: 640px) {
  .fs-shell { --fs-pad: 28px; --fs-section: 64px; }
  .fs-shell h1 { font-size: clamp(2.65rem, 13vw, 4rem); }
  .fs-shell h2 { font-size: clamp(2rem, 10vw, 3rem); }
  .fs-shell .fs-split-title h2 { font-size: clamp(1.9rem, 8vw, 2.4rem); letter-spacing: -.045em; }
  .fs-card-grid { grid-template-columns: 1fr; }
  .fs-article-panel { width: min(calc(100% - 32px), var(--fs-read)); padding: 36px 28px; }
  .fs-alert { padding: 28px 24px; }
}

@supports not (overflow: clip) {
  .fs-shell { overflow: hidden; }
}
