/* CSS Variables for kay-doherty-books */
:root {
  --color-primary: #b35a1f;
  --color-secondary: #4b2840;
  --color-text: #000000;
  --color-tertiary: #2e4a2c;
  --color-quat: #c08497;
  --color-quaternary: #c08497; /* legacy alias, prefer --color-quat */
  --color-bkg-light: #ffffff;
  --color-light-bkg: #ffffff; /* legacy alias */
  --color-bkg-dark: #1b263b;
  --color-dark-bkg: #1b263b; /* legacy alias */
  --font-primary: "Instrument Sans", sans-serif;
  --font-secondary: "Instrument Serif", serif;
  --image-out-now: url(https://imagedelivery.net/xg_zbc51AJzf6SpCjZrqrA/0325b012-c6cd-4ba8-cf77-0e677151d200/public);
}

/* components.scss - Compiled on-demand from Sanity */



.bookBanner { max-width: 1920px; width: 100%; margin: 0 auto; position: relative; min-height: 80vh;
  figure {width: 100%; margin: 0; img {width: 100%;}}
  article {position: absolute; max-width: 950px; width: 100%; top: 50%; left: 50%; transform: translate(-50%,-50%); text-align: center; padding: 2rem 2rem 3rem;
    h1 {color: white; font-family: var(--font-secondary); font-size: 8rem; font-weight: 400; text-shadow: 0px 4px 11px #00000080; margin-bottom: 1rem;}
    p {color: white; font-weight: 500; font-family: var(--font-primary); font-size: 1.8rem; font-style: italic; text-shadow: 0px 4px 7px #00000080;}
  }
.banner-stamp {position: absolute; bottom: -120px; right: 5%;}
}
@media (max-width: 1000px) {
  article {border: none;}
}


.bookSplit, .bookSplitAuthor {display: flex; align-items: center; max-width: 1200px; margin: 5rem auto; padding: 1rem; justify-content: center;
  figure {order: -1; position: relative;
    &.out-now:after {content: ''; background: var(--image-out-now); width: 348px; height: 101px; background-size: contain; background-repeat: no-repeat; top: 100px; left: -85px; position: absolute;}
  }
  article { flex: 0 1 580px; padding: 0 1rem;
    h2 {
      small {text-transform: uppercase; display: block; color: var(--color-text); font-weight: 600; font-size: 1rem; letter-spacing: .2em; font-family: var(--font-primary);}

    }
  }
  &.altSplit {
    figure {order: 2;}
  }
  &.altSplit figure.out-now:after {left: auto; right: -85px;}
}
@media (max-width: 1000px) {
  .bookSplit, .bookSplitAuthor {flex-wrap: wrap; justify-content: center; margin: 2rem auto;
    figure, &.altSplit figure {order: -1; max-width: 80vw;
      img {width: 100%;}
    }
  }
}
@media (max-width: 600px) {
  .bookSplit figure.out-now:after {max-width: 200px; width: 200px; height: 50px; top: 30px; left: -40px;}
  .bookSplit.altSplit figure.out-now:after {max-width: 200px; width: 200px; height: 50px; top: 30px; right: -40px;}
}


.bookSplitSecondary { max-width: 1180px; padding: 1rem; margin: 6rem auto;
  h2 {text-align: center; color: var(--color-secondary); font-weight: 400;}
  .flex-ed { justify-content: space-evenly; align-items: flex-start;;
    article {flex: 0 1 605px; margin: 3rem auto;
      p { font-size: 1.5rem;
        strong {font-weight: 500;}
      }
    }
    figure {order: -1; flex: 0 1 415px;}
  }
}
@media (max-width: 1000px) {
  .bookSplitSecondary { margin: 3rem auto;
    .flex-ed {flex-wrap: wrap;
      figure {order: 2; margin: 0 auto; max-width: 90%; img {width: 100%;}}
      article {text-align: center; margin: 1rem auto; padding: 1rem;}
    }
  }
}



.bookFeatured {width: 100%; position: relative; padding: 4rem 3rem 6rem; background-color: var(--color-bkg-dark); text-align: center;
  h2 {font-size: 8rem; font-weight: 400; margin: 3rem auto;}
  .bookFeatured__books {max-width: 1100px; margin: 3rem auto; display: flex; align-items: start; list-style: none; padding: 0; justify-content: space-evenly;
    .bookFeatured__book {padding: 1rem; text-align: left; color: white; font-family: var(--font-primary); font-weight: 600; max-width: 100%; flex: 0 1 340px; 
      figure {margin: 0 0 2rem;
        img {max-width: 100%;}
      }
      p {color: #828282; font-size: 1.4rem;}
      .btn-alt {max-width: fit-content; text-align: center; margin: 1rem 0; &:hover {color: white;}}
    }
  }
  .btn {margin: 0 auto;}
}
@media (max-width: 1000px) {
  .bookFeatured {padding: 2rem;}
  .bookFeatured__books {flex-wrap: wrap; justify-content: space-evenly;}
}
@media (max-width: 600px) {
  .bookFeatured h2 {font-size: 5rem;}
}


  
.bookReviews { position: relative; padding: 4rem 2rem 6rem; width: 100%; max-width: 100%; text-align: center; overflow: visible;
  h2 { position: relative; z-index: 1; color: white; font-weight: 400; font-size: 4rem; font-family: var(--font-secondary, serif); margin: 0 auto 2.5rem; text-shadow: 0 2px 12px rgba(0,0,0,.4); }
  .bookReviews__empty { position: relative; z-index: 1; color: white; }

  .bookReviews__inner { position: relative; z-index: 1; max-width: 1300px; margin: 0 auto; padding: 0 0.25rem; min-width: 0; width: 100%; box-sizing: border-box; }

  .bookReviews__carouselWrap { display: grid; grid-template-columns: auto minmax(0, 1fr) auto; align-items: stretch; gap: 0.35rem 0.5rem; width: 100%; z-index: 1;
    @media (max-width: 1023px) {
      grid-template-columns: 1fr auto auto 1fr;
      grid-template-rows: auto auto;
      gap: 0.75rem 0.35rem;
      align-items: center;
      .bookReviews__carousel { grid-column: 1 / -1; grid-row: 1; width: 100%; min-width: 0; }
      .bookReviews__nav--prev { grid-column: 2; grid-row: 2; justify-self: end; margin-inline-end: 0.25rem; align-self: center; }
      .bookReviews__nav--next { grid-column: 3; grid-row: 2; justify-self: start; margin-inline-start: 0.25rem; align-self: center; }
    }
  }

  .bookReviews__nav { position: relative; z-index: 2; width: 42px; height: 42px; padding: 0; padding-bottom: .3rem; margin: 0; border: 2px solid rgba(255,255,255,.85); border-radius: 50%; background: rgba(0,0,0,.4); color: white; font-size: 1.75rem; line-height: 1; cursor: pointer; display: flex; align-items: center; justify-content: center; align-self: center; justify-self: center; flex-shrink: 0; transition: background .2s, border-color .2s, opacity .2s;
    &:hover:not(:disabled) { background: rgba(0,0,0,.62); border-color: white; }
    &:disabled { opacity: .28; cursor: default; }
    @media (max-width: 600px) { width: 36px; height: 36px; font-size: 1.35rem; }
  }

}
.bookReviews__carousel { container-type: inline-size; position: relative; z-index: 0; width: 100%; min-width: 0; margin: 0; padding: 0.35rem 0; overflow-x: auto; overflow-y: hidden; -webkit-overflow-scrolling: touch; scroll-snap-type: x proximity; scroll-padding-inline: 0; overscroll-behavior-x: contain; scrollbar-width: none; -ms-overflow-style: none; --reviews-gap: 1.5rem; outline: none; cursor: grab; touch-action: pan-x;
  &::-webkit-scrollbar { display: none; }
  &--dragging { cursor: grabbing; user-select: none; }
  @media (max-width: 899px) { scroll-snap-type: x mandatory; scroll-padding-inline: var(--reviews-snap-pad, 1rem); }
}

.bookReviews__track { display: flex; flex-wrap: nowrap; align-items: stretch; justify-content: flex-start; gap: var(--reviews-gap); list-style: none; margin: 0; padding: 0.25rem 0 0.75rem; width: max-content; min-width: 100%; box-sizing: border-box;
  @media (max-width: 899px) { box-sizing: content-box; padding-inline: var(--reviews-snap-pad, 1rem); }
}

.bookReviews__slide { flex: 0 0 min(405px, calc(100cqi - 1.25rem)); max-width: 100%; scroll-snap-align: center; box-sizing: border-box;
  @media (max-width: 899px) { transition: opacity 0.28s ease; }
  @media (min-width: 900px) { flex: 0 0 calc((100cqi - 2 * var(--reviews-gap)) / 3 - 0.5px); max-width: min(405px, 100%); }
}

.bookReviews__card { display: flex; flex-direction: column; height: 100%; margin: 0; padding: 2rem; background: #fff; border-radius: 12px; text-align: left; box-shadow: 0 8px 28px rgba(0,0,0,.12); box-sizing: border-box;
  .bookReviews__quote { margin: 0 0 1.25rem; flex: 1 1 auto; font-family: var(--font-primary); font-size: 1.2rem; font-weight: 400; line-height: 1.5; color: #1a1a1a; }
  .bookReviews__author { margin: auto 0 0; padding: 0; font-family: var(--font-primary); font-size: 1.8rem; font-weight: 700; color: #1a1a1a; }
}
@media (max-width: 899px) {
  .bookReviews {padding: 4rem 1rem 6rem}
  .bookReviews__slide { opacity: 0.35; }
  .bookReviews__slide--active { opacity: 1; }
}



.bookAdvice {max-width: 865px; width: 100%; margin: 5rem auto; padding: 1rem 2rem; display: flex; align-items: center; justify-content: space-evenly; border: 5px solid #E8B660; border-radius: 60px;
    .book-advice-left {flex: 0 1 180px;
       h3 {font-weight: 600; color: #E8B660; text-align: center; margin: .3rem 0;}
    }
    .book-advice-right {flex: 0 1 630px;
       p {font-size: 1.2rem; line-height: 1.5; font-weight: 500;}
    }
}



.bookBlock article { font-size: 1.4rem; max-width: 1060px; padding: 2rem; margin: 4rem auto; text-align: center; 
  p {text-align: center;}
}



.bookLibrary { max-width: 1340px; margin: 1rem auto; padding: 2rem;
  .bookLibrary__filters {display: flex; justify-content: center; flex-wrap: wrap; gap: 0.5rem; margin: 2rem auto;
    .bookLibrary__filter {max-width: 230px; font-size: 1.5rem; padding: 1rem 2rem; border-radius: 8px; border: 2px solid var(--filter-accent, var(--color-secondary)); background: transparent; color: var(--filter-accent, var(--color-secondary)); transition: background .25s ease, color .25s ease, border-color .25s ease; cursor: pointer;
      &:nth-child(3n + 1) { --filter-accent: var(--color-secondary); }
      &:nth-child(3n + 2) { --filter-accent: var(--color-tertiary); }
      &:nth-child(3n) { --filter-accent: var(--color-primary); }
      &:hover:not([aria-selected="true"]):not([data-active="true"]) { background: var(--filter-accent); color: #fff; }
      &[aria-selected="true"], &[data-active="true"] { background: var(--filter-accent); color: #fff; border-color: var(--filter-accent); }
    }
  }
  .bookLibrary__grid {padding: 0; display: flex; justify-content: space-evenly; flex-wrap: wrap; list-style: none; margin: 2rem auto;
    .bookLibrary__item {flex: 0 1 360px; margin: 2rem 1rem; 
      .bookLibrary__figure {margin: 0 0 1rem;}
      .bookLibrary__title {font-size: 1.5rem; font-weight: 600;}
      .bookLibrary__note {font-weight: 600;}
      .bookLibrary__blurb {color: #828282; line-height: 1.5;}
      .bookLibrary__buy {border: none; max-width: 200px; min-width: auto; display: block; font-size: 1rem; background-color: transparent; font-weight: 600; border-radius: 0; color: var(--color-primary); transition: .3s all; &:hover {color: var(--color-secondary)}}
    }
  }
}


.bookBlogFeed { max-width: 1100px; margin: 2rem auto; padding: 1rem 1.25rem 3rem; }
.bookBlogFeed-filters { display: flex; flex-wrap: wrap; align-items: flex-end; gap: 1rem 1.5rem; margin-bottom: 2rem; padding-bottom: 1.25rem; border-bottom: 1px solid rgba(0, 0, 0, 0.08); }
.bookBlogFeed-search-label { display: flex; flex-direction: column; gap: 0.35rem; min-width: min(100%, 260px); flex: 1 1 200px; font-family: var(--font-primary); font-size: 0.95rem; font-weight: 600; color: var(--color-text); }
.bookBlogFeed-search-input { padding: 0.65rem 0.85rem; border: 2px solid var(--color-tertiary, #e0e0e0); border-radius: 6px; font-family: var(--font-primary); font-size: 1rem; &:focus { outline: none; border-color: var(--color-secondary); } }
.bookBlogFeed-tags { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem; }
.bookBlogFeed-tags-label { font-size: 0.85rem; font-weight: 600; margin-right: 0.25rem; color: var(--color-text); }
.bookBlogFeed-tag-clear, .bookBlogFeed-tag { font-family: var(--font-primary); font-size: 0.9rem; padding: 0.35rem 0.75rem; border-radius: 999px; border: 2px solid var(--color-secondary); background: transparent; color: var(--color-secondary); cursor: pointer; transition: background 0.2s, color 0.2s; }
.bookBlogFeed-tag-clear:hover, .bookBlogFeed-tag:hover { background: var(--color-secondary); color: #fff; }
.bookBlogFeed-tag[aria-pressed="true"] { background: var(--color-primary); border-color: var(--color-primary); color: #fff; }
.bookBlogFeed-empty { text-align: center; padding: 2rem; color: #666; font-family: var(--font-primary); }
.bookBlogFeed-list { list-style: none; margin: 0; padding: 0; display: flex; flex-direction: column; gap: 1.5rem; }
.bookBlogFeed-card { display: grid; grid-template-columns: 1fr; gap: 1.25rem; padding: 1.5rem; border-radius: 12px; background: #fff; box-shadow: 0 4px 20px rgba(0, 0, 0, 0.06); border: 1px solid rgba(0, 0, 0, 0.06); @media (min-width: 720px) { grid-template-columns: 1fr minmax(160px, 280px); align-items: start; } }
.bookBlogFeed-text { min-width: 0; }
.bookBlogFeed-title { margin: 0 0 0.5rem; font-family: var(--font-secondary, serif); font-size: 1.75rem; font-weight: 400; color: var(--color-text); line-height: 1.2; }
.bookBlogFeed-date { display: block; font-size: 0.95rem; color: #666; margin-bottom: 0.75rem; }
.bookBlogFeed-excerpt { margin: 0 0 1rem; font-family: var(--font-primary); font-size: 1.05rem; line-height: 1.5; color: #444; }
.bookBlogFeed-read-more { font-family: var(--font-primary); font-weight: 600; color: var(--color-primary); text-decoration: none; &:hover { color: var(--color-secondary); text-decoration: underline; } }
.bookBlogFeed-figure { margin: 0; border-radius: 8px; overflow: hidden; img { width: 100%; height: auto; display: block; vertical-align: middle; } }
.bookBlogFeed-load-more-wrap { text-align: center; margin-top: 2rem; }
.bookBlogFeed-load-more { font-family: var(--font-primary); font-weight: 600; padding: 0.65rem 1.5rem; border-radius: 8px; border: 2px solid var(--color-secondary); background: transparent; color: var(--color-secondary); cursor: pointer; transition: background 0.2s, color 0.2s; &:hover { background: var(--color-secondary); color: #fff; } }


.bookBlogFeedMore { max-width: 1200px; margin: 3rem auto; padding: 2rem 1.25rem 4rem; }
.bookBlogFeedMore-heading { text-align: center; font-family: var(--font-secondary, serif); font-size: 2.5rem; font-weight: 400; margin: 0 0 2rem; color: var(--color-text); }
.bookBlogFeedMore-empty { text-align: center; color: #666; font-family: var(--font-primary); }
.bookBlogFeedMore-grid { list-style: none; margin: 0; padding: 0; display: grid; gap: 1.5rem; grid-template-columns: 1fr; @media (min-width: 600px) { grid-template-columns: repeat(2, 1fr); } @media (min-width: 960px) { grid-template-columns: repeat(3, 1fr); } }
.bookBlogFeedMore-card { height: 100%; border-radius: 12px; overflow: hidden; background: #fff; box-shadow: 0 4px 18px rgba(0, 0, 0, 0.08); border: 1px solid rgba(0, 0, 0, 0.06); transition: box-shadow 0.2s, transform 0.2s; &:hover { box-shadow: 0 8px 28px rgba(0, 0, 0, 0.12); } }
.bookBlogFeedMore-card-link { display: flex; flex-direction: column; height: 100%; text-decoration: none; color: inherit; }
.bookBlogFeedMore-figure { margin: 0; aspect-ratio: 16 / 10; overflow: hidden; background: var(--color-quat, #f5f5f5); img { width: 100%; height: 100%; object-fit: cover; display: block; } }
.bookBlogFeedMore-card-body { padding: 1.25rem; flex: 1; display: flex; flex-direction: column; gap: 0.5rem; }
.bookBlogFeedMore-card-title { margin: 0; font-family: var(--font-secondary, serif); font-size: 1.35rem; font-weight: 400; line-height: 1.25; color: var(--color-text); }
.bookBlogFeedMore-card-date { font-size: 0.9rem; color: #666; }
.bookBlogFeedMore-footer { text-align: center; margin-top: 2.5rem; }
.bookBlogFeedMore__footer-btn { display: inline-block; font-family: var(--font-primary); font-weight: 600; padding: 0.75rem 1.75rem; border-radius: 8px; background: var(--color-primary); color: #fff; text-decoration: none; transition: background 0.2s, transform 0.2s; &:hover { background: var(--color-secondary); } }


.blog-landing-main { min-width: 0; }


.blog-post-page { background: var(--color-bkg, #fff); }
.blog-post-main { max-width: 1200px; margin: 0 auto; padding: 12rem 1.25rem 4rem; box-sizing: border-box; }
.blog-post-article { width: 100%; min-width: 0; 
  .blog-post-excerpt {display: none;}
}
.blog-post-header { margin-bottom: 2rem; text-align: center; }
.blog-post-title { margin: 0 0 0.75rem; font-family: var(--font-secondary, serif); font-size: 2.6rem; font-weight: 400; color: var(--color-text); line-height: 1.15; }
.blog-post-meta { margin: 0 0 1rem; font-family: var(--font-primary); font-size: 1rem; color: #666; time { font-weight: 500; color: var(--color-text); } }
.blog-post-excerpt { margin: 0 auto; max-width: 42em; font-family: var(--font-primary); font-size: 1.15rem; line-height: 1.55; color: #444; font-style: italic; }
.blog-post-body { font-family: var(--font-primary); font-size: 1.1rem; line-height: 1.65; color: var(--color-text); max-width: 100%; &::after { content: ''; display: table; clear: both; } }
.blog-post-main-image-hero { margin: 0 0 1.5rem; width: 100%; max-height: min(70vh, 560px); overflow: hidden; border-radius: 4px; img { width: 100%; height: 100%; max-height: min(70vh, 560px); object-fit: cover; display: block; } }
.blog-post-body-wrap--float { display: flow-root; min-width: 0; }
.blog-post-body-wrap--float-left .blog-post-main-image-float { float: left; margin: 0 1.25rem 0.75rem 0; max-width: min(42%, 380px); width: 100%; }
.blog-post-body-wrap--float-right .blog-post-main-image-float { float: right; margin: 0 0 0.75rem 1.25rem; max-width: min(42%, 380px); width: 100%; }
.blog-post-main-image-float { margin: 0; img { width: 100%; height: auto; display: block; border-radius: 4px; } }
@media (max-width: 767px) { .blog-post-body-wrap--float-left .blog-post-main-image-float, .blog-post-body-wrap--float-right .blog-post-main-image-float { float: none; max-width: 100%; margin: 0 0 1rem 0; } }
.blog-post-footer-components { margin-top: 2.5rem; padding-top: 2rem; border-top: 1px solid rgba(0, 0, 0, 0.08); }
.blog-post-footer-components__block + .blog-post-footer-components__block { margin-top: 1.5rem; }
.blog-body-paragraph { margin: 0 0 1.15em; }
.blog-body-heading { font-family: var(--font-secondary, serif); font-weight: 400; color: var(--color-text); line-height: 1.2; margin: 1.5em 0 0.5em; &:first-child { margin-top: 0; } }
.blog-body-heading--h1 { font-size: 2.2rem; }
.blog-body-heading--h2 { font-size: 1.85rem; }
.blog-body-heading--h3 { font-size: 1.5rem; }
.blog-body-heading--h4 { font-size: 1.2rem; }
.blog-body-quote { margin: 1.5rem 0; padding: 1rem 1.25rem; border-left: 4px solid var(--color-secondary); background: rgba(0, 0, 0, 0.03); font-style: italic; color: #333; }
.blog-body-image { margin: 1.75rem auto; max-width: 100%; img { width: 100%; height: auto; display: block; border-radius: 6px; } }
.blog-body-image--default { max-width: 100%; }
.blog-body-image--wide { max-width: min(1100px, 100vw); width: calc(100% + 2rem); margin-left: -1rem; margin-right: -1rem; @media (min-width: 960px) { width: 100vw; max-width: 100vw; position: relative; left: 50%; margin-left: -50vw; } }
.blog-body-image--full { width: 100vw; max-width: 100vw; position: relative; left: 50%; transform: translateX(-50%); margin: 2rem 0; border-radius: 0; img { border-radius: 0; } }
.blog-body-image--floatLeft { float: left; max-width: min(45%, 380px); margin: 0.35rem 1.25rem 1rem 0; @media (max-width: 600px) { float: none; max-width: 100%; margin: 1rem 0; } }
.blog-body-image--floatRight { float: right; max-width: min(45%, 380px); margin: 0.35rem 0 1rem 1.25rem; @media (max-width: 600px) { float: none; max-width: 100%; margin: 1rem 0; } }
.blog-body-image__caption { margin: 0.5rem 0 0; font-size: 0.95rem; color: #666; text-align: center; font-style: italic; }
.blog-body-cta { margin: 1.25rem 0; text-align: center; .btn { margin: 0 auto; } }
.blog-post-body a { color: var(--color-primary); font-weight: 600; text-decoration: underline; text-underline-offset: 2px; &:hover { color: var(--color-secondary); } }
.pt-list { margin: 1rem 0 1.25rem; padding-left: 1.35rem; }
.pt-list-item { margin-bottom: 0.45em; &::marker { color: var(--color-secondary); } }
.pt-mark-nbsp { white-space: nowrap; }



/* main.scss - Compiled on-demand from Sanity */
*, *::before, *::after {
  box-sizing: border-box;
}


.flex-ed {display: flex; justify-content: center; flex-wrap: nowrap;}
@media (max-width: 768px) {
  .flex-ed { flex-wrap: wrap; }
}
.animate-reveal { opacity: 0; transition: opacity 0.5s ease-out, transform 0.5s ease-out;}
.animate-reveal.is-visible { opacity: 1; }

.animate-reveal.fade-in {opacity: 0;transition: opacity 0.5s ease-out;}
.animate-reveal.fade-in.is-visible {opacity: 1;}

.animate-reveal.fade-from-top {opacity: 0;transform: translateY(-150px);transition: opacity 0.5s ease-out, transform 0.5s ease-out;}
.animate-reveal.fade-from-top.is-visible {opacity: 1;transform: translateY(0);}

.animate-reveal.fade-from-bottom {opacity: 0;transform: translateY(150px);transition: opacity 0.5s ease-out, transform 0.5s ease-out;}
.animate-reveal.fade-from-bottom.is-visible {opacity: 1;transform: translateY(0);}

.animate-reveal.fade-from-left {opacity: 0;transform: translateX(150px);transition: opacity 0.5s ease-out, transform 0.5s ease-out;}
.animate-reveal.fade-from-left.is-visible {opacity: 1;transform: translate(0);}

.animate-reveal.fade-from-right {opacity: 0;transform: translateX(-150px);transition: opacity 0.5s ease-out, transform 0.5s ease-out;}
.animate-reveal.fade-from-right.is-visible {opacity: 1;transform: translate(0);}


@media (max-width: 768px) {
  .animate-reveal.fade-from-left,
  .animate-reveal.fade-from-right { transform: none; }
  .animate-reveal.fade-from-left.is-visible,
  .animate-reveal.fade-from-right.is-visible { transform: none; }
}

img {max-width: 100%; position: relative; display: block; margin: 0 auto;}
html {font-size: 16px; overflow-x: hidden;}
body { padding-top: 90px;
    font-family: var(--font-primary, sans-serif);
    margin: 0;
    line-height: 1.25;
    font-size: 16px;
    color: var(--color-text);
    background-color: #fff;
    max-width: 100vw;
    overflow-x: hidden;
  }
  p {margin: 1rem auto; font-family: var(--font-primary); font-weight: 300;}
  h2 {color: var(--color-primary); font-size: 3rem; font-family: var(--font-secondary); font-weight: 600;}
  h3 {font-family: var(--font-primary); font-weight: 500;}
  
  .container {
    max-width: 1200px;
    margin: 0 auto;
    padding: 0 2rem;
  }
  
  .btn {border-radius: 8px; min-width: 190px; display: block; font-size: 1rem; text-decoration: none; background-color: transparent; cursor: pointer; padding: 1rem; text-align: center; max-width: 100%; width: fit-content; color: var(--color-tertiary); border: 2px solid var(--color-tertiary); letter-spacing: .2em; font-weight: 500; transition: .3s all; text-transform: uppercase;
    &:hover {background-color: var(--color-tertiary); color: white;}
    &.btn-alt {border-color: var(--color-quat); color: var(--color-quat); &:hover {background-color: var(--color-quat);}}
    &.btn-ter {border: none; border-bottom: 2px solid white; border-radius: 0; color: white; &:hover {background: white; color: var(--color-secondary);}}
  }
strong {font-weight: 600;}


  
  .book-header {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    width: 100%;
    max-width: 100%;
    z-index: 1000;
    background: #4B2840;
    color: white;
    

    .book-header-inner {
      display: flex;
      align-items: center;
      justify-content: space-between;
      background-repeat: no-repeat;
      padding: 1rem 2rem;
      min-height: 70px;
      backdrop-filter: blur(10px);
    }
    
    .book-header-logo {
      display: flex;
      align-items: center;
      gap: 12px;
      position: relative;
      text-decoration: none;
      color: inherit;

      img {
        height: 60px;
        width: auto;
        transition: all 0.3s ease;
      }
      
      &:hover img {
        transform: scale(1.05);
      }
    }
    
    
    .book-header-nav {
      margin: 0;
order: -1;
      ul {
        display: flex;
        gap: 2.5rem;
        list-style: none;
        padding: 0;
        margin: 0;
        
        li {
          position: relative; padding: .5rem 0;
          
          a {
            color: white;
            text-decoration: none;
            font-weight: 500;
            transition: all 0.3s ease;
            padding: 0.5rem 0;
            
            &:hover {
              color: var(--color-primary);

            }
          }
          &:hover {ul {display: block;}}
          ul {position: absolute; width: 300px; z-index: 100; top: 40px; left: 0; display: none;
            li { width: 100%; padding: 0;
              a {padding: .5rem 1rem; background: white; margin: 0; display: block; color: var(--color-text); transition: .5s all; width: 100%;
                &:hover {color: var(--color-primary); background: var(--color-tertiary);}
              }
            }

          }
        }
      }
    }
    
    .book-header-btn {border-radius: 8px; max-width: 140px; display: block; font-size: 1rem; text-align: center; text-decoration: none; padding: 1rem; width: 100%; color: var(--color-bkg-dark); background-color: var(--color-quaternary); letter-spacing: .2em; font-weight: 500; transition: .3s all; text-transform: uppercase;
      &:hover { color: white; background-color: var(--color-bkg-dark);}
  }




    &.scrolled {
      background: #4B2840;
      box-shadow: 0px 8px 15px rgba(0, 0, 0, 0.3);
      backdrop-filter: none;
      color: white;
      .book-header-nav ul li a {color: #fff; &:hover {color: var(--color-primary);}}
    }
  }


  @media (max-width: 768px) {
    .book-header { overflow-x: hidden;
      .book-header-inner { padding: 1rem 1.25rem; flex-wrap: nowrap; max-width: 100%; min-width: 0;}

      
      .book-header-nav,.book-header-btn-desktop {display: none !important;}

      
      .book-header-menu-toggle { display: flex; flex-direction: column; justify-content: center; gap: 5px; width: 44px; height: 44px; padding: 0; border: none; background: transparent; cursor: pointer; color: inherit; margin-left: auto; transition: transform 0.2s ease;
        .book-header-menu-toggle-line { display: block; width: 24px; height: 2px; background: currentColor; border-radius: 1px; transition: transform 0.25s ease, opacity 0.2s ease;}
      }

      
      &.menu-open .book-header-menu-toggle {
        .book-header-menu-toggle-line:nth-child(1) { transform: translateY(7px) rotate(45deg);}
        .book-header-menu-toggle-line:nth-child(2) { opacity: 0;}
        .book-header-menu-toggle-line:nth-child(3) { transform: translateY(-7px) rotate(-45deg);}
      }

      
      .book-header-menu-overlay { position: fixed; top: 0; left: 0; right: 0; height: calc(var(--vvh, 100vh)); min-height: calc(var(--vvh, 100vh)); background: rgba(0, 0, 0, 0.4); opacity: 0; visibility: hidden; transition: opacity 0.25s ease, visibility 0.25s ease; z-index: 999;}
      &.menu-open .book-header-menu-overlay { opacity: 1; visibility: visible;}

      
      .book-header-menu-close { flex-shrink: 0; align-self: flex-end; width: 44px; height: 44px; margin: 0 1rem 0.5rem; padding: 0; border: none; background: transparent; color: var(--color-text); cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 4px; transition: background 0.2s ease, color 0.2s ease;
        &:hover { background: var(--color-tertiary, #f0f0f0); color: var(--color-primary); }
      }
      .book-header-menu-close-x { position: relative; width: 20px; height: 20px; display: block; }
      .book-header-menu-close-line { position: absolute; left: 50%; top: 50%; width: 20px; height: 2px; margin-left: -10px; margin-top: -1px; background: currentColor; border-radius: 1px;
        &:first-child { transform: rotate(45deg); }
        &:last-child {transform: rotate(-45deg);}
      }

      
      .book-header-menu-panel { position: fixed; top: 0; right: 0; width: min(360px, 85vw); height: calc(var(--vvh, 100vh)); min-height: calc(var(--vvh, 100vh)); background: white; color: var(--color-text); box-shadow: -4px 0 20px rgba(0, 0, 0, 0.15); z-index: 1001; display: flex; flex-direction: column; padding: 1.5rem 0; transform: translateX(100%); transition: transform 0.3s ease; overflow-y: auto; background-image: var(--image-internal-split-mountains-mobile); background-size: cover;
        &:before {content: ''; position: absolute; z-index: -1; height: 15%; top: 0; width: 100%; left: 0; bottom: auto; right: auto; border-top-right-radius: 40px; background: linear-gradient(to bottom, white 50%, transparent 100%);}
      }
      &.menu-open .book-header-menu-panel { transform: translateX(0); }

      
      .book-header-mobile-nav { flex: 1 1 auto; padding: 0 1rem; }
      .book-header-mobile-nav-list { list-style: none; margin: 0; padding: 0; }
      .book-header-mobile-nav-item { margin: 0; border-bottom: 1px solid var(--color-border, rgba(0, 0, 0, 0.08));
        &.has-children .book-header-mobile-nav-row { display: flex; align-items: center; justify-content: space-between; gap: 0.75rem;}
      }
      .book-header-mobile-nav-row { padding: 0.75rem 0;}
      .book-header-mobile-nav-label { flex: 1; min-width: 0;
        a { color: var(--color-text); text-decoration: none; font-weight: 500; display: block;
          &:hover {color: var(--color-primary);}
        }
        span { color: var(--color-text); font-weight: 500; }
      }

      
      .book-header-mobile-nav-toggle { flex-shrink: 0; width: 36px; height: 36px; padding: 0; border: 2px solid var(--color-text); background: transparent; cursor: pointer; display: flex; align-items: center; justify-content: center; border-radius: 4px; color: var(--color-text); transition: background 0.2s ease, border-color 0.2s ease;
        &:hover {background: var(--color-tertiary, #f0f0f0);border-color: var(--color-primary);
          .book-header-mobile-nav-toggle-box {color: white;}
        }
        .book-header-mobile-nav-toggle-box {width: 10px; height: 10px; border: 2px solid currentColor; border-top: none; border-left: none; transform: rotate(45deg); margin-bottom: 4px; transition: transform 0.25s ease;}
      }
      .book-header-mobile-nav-item.is-expanded .book-header-mobile-nav-toggle .book-header-mobile-nav-toggle-box {transform: rotate(-135deg);margin-bottom: -4px;}
      .book-header-mobile-subnav {
        list-style: none; margin: 0; padding: 0 0 0 1rem; border-left: 2px solid var(--color-border, rgba(0, 0, 0, 0.08)); margin-left: 0.5rem; overflow: hidden;
        &[hidden] {display: none;}
        .book-header-mobile-nav-item {border-bottom: none;}
        .book-header-mobile-nav-row {padding: 0.5rem 0;}
        .book-header-mobile-nav-label a,.book-header-mobile-nav-label span {font-size: 0.95em;}
      }

      
      .book-header-btn-mobile {margin: 1rem ;text-align: center;display: block;}
    }
  }

  
  @media (min-width: 769px) {
    .book-header .book-header-menu-toggle,
    .book-header .book-header-menu-overlay,
    .book-header .book-header-menu-panel {
      display: none !important;
    }
  }
  
  

    
    footer {margin: 0; width: 100%;}
     .book-footer {
      background: var(--color-secondary);
      padding: 5rem 0 0;
      position: relative;
      text-align: center;
        .social-container {max-width: 1200px; padding: 3rem 2rem; margin: 0 auto; width: 100%;
            .footer-social-icons {display: flex; justify-content: center; align-items: center;
                 a {width: 40px; height: 40px; padding: 10px; text-align: center; transition: .3s all;
                  &:hover {
                    img {filter: contrast(50%)}
                  }
                }
            }
        }

      }

    .copy { background: var(--color-secondary);
      width: 100%;
      text-align: center;
      color: #828282;
      margin: 0 auto;
      text-transform: uppercase;
      font-size: 1rem;
      letter-spacing: .1em;
      font-weight: 500;
      padding: 1rem 2rem;
      position: relative;
      &:before {width: 95%; max-width: 1200px; margin: 0 auto; height: 1px; background: #828282; top: 0; left: 50%; transform: translateX(-50%); position: absolute; content: '';}
      
    }
  
  
  
  
  @media (max-width: 768px) {
    .book-header {
      
      .book-header-nav {
        ul {
          flex-direction: column;
          gap: 1rem;
          text-align: center;
        }
      }
      
    }
    .book-footer .flex-ed {flex-wrap: wrap; justify-content: center;
      .center-container {padding-top: 0;
        ul {margin-top: 0;}
      }
    }
  }
  
  @media (max-width: 480px) {
    .container {
      padding: 0 1rem;
    }
  } 

