/* Page Flip Book
   Every selector starts with .byq-gem--page-flip-book-01 so the gem can sit on
   any page without collisions. Colours come from brand tokens only.

   The book itself is drawn in WebGL (script.js): the pages are real meshes and
   the turning leaf is bent around a cylinder, so the curl is an actual bend with
   a lit crown, a shaded hollow and a shadow that travels across the page
   beneath it. The <article> pages in the markup are the content source — the
   script prints each one onto a texture. They stay in the DOM, visually hidden,
   for screen readers, and become the visible book when WebGL is unavailable.

   Re-skin through the four custom properties below; the script reads them. */

.byq-gem--page-flip-book-01 {
  --pfb-paper: #f7f4ec;
  --pfb-ink: #283e40;
  --pfb-accent: #59a5d2;
  --pfb-board: #267ba4;
  --byq-font-display: "Montserrat", sans-serif;
  --byq-font-sans: "Montserrat", sans-serif;
  --byq-font-mono: "Montserrat", sans-serif;
  --byq-fg: #283e40;
  --byq-radius-lg: 16px;

  position: relative;
  width: 100%;
  max-width: 76rem;
  margin-inline: auto;
  font-family: var(--byq-font-sans);
  color: var(--byq-fg);
  outline: none;
}

.byq-gem--page-flip-book-01:focus-visible .byq-gem--page-flip-book-01__stage {
  outline: 1px solid color-mix(in srgb, var(--byq-fg) 30%, transparent);
  outline-offset: 0.5rem;
  border-radius: var(--byq-radius-lg);
}

.byq-gem--page-flip-book-01__stage {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 10;
}

.byq-gem--page-flip-book-01__canvas {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  display: block;
  touch-action: pan-y pinch-zoom;
  cursor: grab;
  opacity: 0;
  transition: opacity 0.5s ease;
}

.byq-gem--page-flip-book-01.is-ready .byq-gem--page-flip-book-01__canvas {
  opacity: 1;
}

.byq-gem--page-flip-book-01.is-dragging .byq-gem--page-flip-book-01__canvas {
  cursor: grabbing;
}

/* Content source — visually hidden while WebGL renders the book. */
.byq-gem--page-flip-book-01__pages {
  position: absolute;
  width: 1px;
  height: 1px;
  overflow: hidden;
  clip-path: inset(50%);
  white-space: nowrap;
}

.byq-gem--page-flip-book-01__page[aria-hidden="true"] {
  visibility: hidden;
}

/* ---------- Fallback (no WebGL2, or images the browser won't upload) ------
   A plain two-page spread; clicking the halves / arrow keys turns it. */
.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__canvas {
  display: none;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__pages {
  position: absolute;
  inset: 6% 10%;
  width: auto;
  height: auto;
  clip-path: none;
  white-space: normal;
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-content: center;
  cursor: pointer;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page {
  display: none;
  position: relative;
  aspect-ratio: 3 / 4;
  max-height: 100%;
  overflow: hidden;
  padding: 8%;
  background: var(--pfb-paper);
  color: var(--pfb-ink);
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page.is-current {
  display: flex;
  flex-direction: column;
  gap: 0.75rem;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page[data-layout="quote"] {
  background: var(--pfb-ink);
  color: var(--pfb-paper);
  justify-content: center;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page[data-layout="photo"] img {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page[data-layout="feature"] img {
  width: 100%;
  height: auto;
  margin-top: auto;
  aspect-ratio: 4 / 3;
  object-fit: cover;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__caption {
  position: absolute;
  left: 8%;
  bottom: 6%;
  color: var(--pfb-paper);
  font-family: var(--byq-font-mono);
  font-size: 0.7rem;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__title {
  font-family: var(--byq-font-display);
  font-weight: 400;
  font-size: clamp(1.25rem, 3vw, 2.5rem);
  line-height: 1.02;
  letter-spacing: -0.02em;
  quotes: none;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__kicker,
.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__contents {
  font-family: var(--byq-font-mono);
  font-size: 0.7rem;
  list-style: none;
}

.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__body {
  font-size: 0.8rem;
  line-height: 1.5;
}

@media (max-width: 640px) {
  .byq-gem--page-flip-book-01__stage {
    aspect-ratio: 5 / 4;
  }
}

@media (prefers-reduced-motion: reduce) {
  .byq-gem--page-flip-book-01__canvas {
    transition: none;
  }
}

/* EG Veranda edition. BYQ's scene and real paper curl are retained above. */
.eg-book-section{margin:0 0 96px;padding:48px 32px 32px;border:1px solid #dbe3e2;background:linear-gradient(145deg,#f1f4f1,#e5ecea);border-radius:24px;overflow:hidden}
.eg-book-intro{display:flex;justify-content:space-between;gap:40px;align-items:flex-end;max-width:1120px;margin:0 auto}
.eg-book-intro .info-kicker{color:#287ea8;margin-bottom:18px}
.eg-book-intro h2{font-size:clamp(34px,4.5vw,62px);font-weight:300;letter-spacing:-.045em;line-height:1.05;margin:0}
.eg-book-intro h2 strong{font-weight:600}
.eg-book-intro>p{max-width:325px;font-size:14px;line-height:1.8;color:#596a6b;margin:0 0 3px}
.byq-gem--page-flip-book-01__stage{aspect-ratio:16/10;margin:0 auto;filter:drop-shadow(0 24px 22px #243b3b20)}
.byq-gem--page-flip-book-01 .eg-book-loading{position:absolute;inset:40% 0 auto;text-align:center;font-size:13px;color:#5a6c6d;letter-spacing:.025em;pointer-events:none}
.byq-gem--page-flip-book-01.is-ready .eg-book-loading,.byq-gem--page-flip-book-01.is-fallback .eg-book-loading{display:none}
.byq-gem--page-flip-book-01 .eg-book-toolbar{position:relative;display:flex;align-items:center;justify-content:space-between;gap:20px;max-width:1120px;margin:-18px auto 0;padding:20px 0;border-top:1px solid #283e4026;border-bottom:1px solid #283e4026}
.byq-gem--page-flip-book-01 .eg-book-pagination{display:flex;align-items:center;gap:16px}
.byq-gem--page-flip-book-01 .eg-book-pagination button{display:grid;place-items:center;width:48px;height:48px;flex:none;background:#faf9f5;border:1px solid #9cacac;border-radius:50%;color:#283e40;cursor:pointer;transition:background .2s,border-color .2s,transform .2s}
.byq-gem--page-flip-book-01 .eg-book-pagination button:hover:not(:disabled){background:#59a5d2;border-color:#59a5d2;transform:translateY(-2px)}
.byq-gem--page-flip-book-01 .eg-book-pagination button:disabled{opacity:.32;cursor:default}
.byq-gem--page-flip-book-01 .eg-book-pagination svg,.byq-gem--page-flip-book-01 .eg-book-reader-toggle svg{width:21px;height:21px;fill:none;stroke:currentColor;stroke-width:1.5;stroke-linecap:round;stroke-linejoin:round}
.byq-gem--page-flip-book-01 [data-book-status]{min-width:139px;font-size:12px;text-align:center;font-variant-numeric:tabular-nums;color:#3b5253}
.byq-gem--page-flip-book-01 .eg-book-hint{font-size:11px;color:#607072}
.byq-gem--page-flip-book-01 .eg-book-reader-toggle{font:inherit;font-size:12px;display:flex;align-items:center;justify-content:center;gap:10px;border:0;padding:12px 0 12px 12px;min-height:44px;color:#283e40;background:none;cursor:pointer;white-space:nowrap}
.byq-gem--page-flip-book-01 .eg-book-reader-toggle[aria-expanded="true"]{color:#1b719e}
.byq-gem--page-flip-book-01.is-reading .byq-gem--page-flip-book-01__pages,
.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__pages,
.byq-gem--page-flip-book-01:not(.is-enhanced) .byq-gem--page-flip-book-01__pages{position:relative;inset:auto;width:auto;height:auto;overflow:visible;clip-path:none;white-space:normal;display:grid;grid-template-columns:repeat(2,minmax(0,1fr));align-items:stretch;gap:1px;max-width:980px;margin:28px auto 0;background:#cfd7d4;border:1px solid #cfd7d4;border-radius:8px;cursor:default}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page{display:none}
.byq-gem--page-flip-book-01.is-reading .byq-gem--page-flip-book-01__page.is-current,
.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page.is-current,
.byq-gem--page-flip-book-01:not(.is-enhanced) .byq-gem--page-flip-book-01__page{display:flex;position:relative;flex-direction:column;gap:18px;aspect-ratio:auto;max-height:none;min-height:480px;overflow:hidden;padding:42px;background:var(--pfb-paper);color:var(--pfb-ink)}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__title{font:500 clamp(27px,3vw,43px)/1.08 "Montserrat",sans-serif;letter-spacing:-.04em;margin:0;quotes:none}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__kicker{font:500 10px/1.8 "Montserrat",sans-serif;letter-spacing:.09em;text-transform:uppercase}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__body{font:400 15px/1.8 "Montserrat",sans-serif;margin:0;white-space:normal}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page>img:not(.eg-book-logo){display:block;position:static;width:100%;height:auto;min-height:0;aspect-ratio:4/3;object-fit:cover;margin-top:auto}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page>img.eg-book-logo{width:190px;height:auto;max-width:100%;object-fit:contain;margin:0 0 15px}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page[data-layout="quote"]{justify-content:center;background:var(--pfb-ink);color:var(--pfb-paper)}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page[data-layout="quote"] .byq-gem--page-flip-book-01__title:before{content:'“';display:block;color:var(--pfb-accent);font-size:100px;line-height:.7;font-weight:400;margin:0 0 18px}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page[data-layout="photo"]{padding:0}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page[data-layout="photo"]>img{position:absolute;inset:0;width:100%;height:100%;aspect-ratio:auto;object-fit:cover}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page[data-layout="photo"]:after{content:"";position:absolute;inset:60% 0 0;background:linear-gradient(transparent,#132c31ba);pointer-events:none}
.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__caption{position:absolute;left:28px;right:28px;bottom:25px;margin:0;font-size:13px;line-height:1.5;color:#fff;z-index:1}
.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__stage,.byq-gem--page-flip-book-01:not(.is-enhanced) .byq-gem--page-flip-book-01__stage{display:none}
.byq-gem--page-flip-book-01.is-fallback .eg-book-hint{display:none}
.byq-gem--page-flip-book-01.is-fallback .eg-book-reader-toggle{display:none}
.byq-gem--page-flip-book-01.is-fallback .eg-book-toolbar{margin-top:32px}
.byq-gem--page-flip-book-01:not(.is-enhanced) .eg-book-toolbar{display:none}
.eg-book-outro{display:flex;justify-content:space-between;gap:25px;align-items:center;max-width:1120px;margin:30px auto 0}
.eg-book-outro>p{font-size:13px;line-height:1.6;max-width:220px;margin:0;color:#526567}
.eg-book-outro .info-cta{font-size:11px;padding:13px 20px}
.eg-book-noscript{font-size:13px;line-height:1.6}
@media(max-width:900px){.eg-book-section{padding:36px 24px 28px}.eg-book-intro{gap:24px}.eg-book-intro>p{font-size:13px;max-width:260px}.byq-gem--page-flip-book-01 .eg-book-hint{display:none}.byq-gem--page-flip-book-01 .eg-book-toolbar{margin-top:0}.eg-book-outro{flex-direction:column;align-items:flex-start}.eg-book-outro>p{max-width:none}}
@media(max-width:640px){.eg-book-section{margin:0 -8px 60px;padding:28px 16px 24px;border-radius:18px}.eg-book-intro{display:block}.eg-book-intro h2{font-size:38px}.eg-book-intro .info-kicker{font-size:10px;margin-bottom:14px}.eg-book-intro>p{max-width:none;margin-top:20px;font-size:13px}.byq-gem--page-flip-book-01__stage{aspect-ratio:1.2;margin-top:4px}.byq-gem--page-flip-book-01 .eg-book-toolbar{display:grid;grid-template-columns:1fr;justify-items:center;gap:8px;padding:16px 0}.byq-gem--page-flip-book-01 .eg-book-reader-toggle{padding:3px 12px;min-height:40px}.byq-gem--page-flip-book-01 .eg-book-pagination{gap:16px}.byq-gem--page-flip-book-01 [data-book-status]{min-width:132px;font-size:11px}.byq-gem--page-flip-book-01.is-reading .byq-gem--page-flip-book-01__pages,.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__pages,.byq-gem--page-flip-book-01:not(.is-enhanced) .byq-gem--page-flip-book-01__pages{grid-template-columns:1fr;margin-top:24px}.byq-gem--page-flip-book-01.is-reading .byq-gem--page-flip-book-01__page.is-current,.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page.is-current,.byq-gem--page-flip-book-01:not(.is-enhanced) .byq-gem--page-flip-book-01__page{min-height:0;padding:28px;gap:18px}.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__title{font-size:30px}.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__body{font-size:14px;line-height:1.85}.byq-gem--page-flip-book-01.is-reading .byq-gem--page-flip-book-01__page[data-layout="photo"],.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page[data-layout="photo"],.byq-gem--page-flip-book-01:not(.is-enhanced) .byq-gem--page-flip-book-01__page[data-layout="photo"]{aspect-ratio:4/5;padding:0}.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page[data-layout="quote"]{min-height:330px!important}.eg-book-outro{gap:17px;margin-top:24px}.eg-book-outro .info-actions{width:100%;gap:10px}.eg-book-outro .info-cta{width:100%;justify-content:space-between}.byq-gem--page-flip-book-01 .byq-gem--page-flip-book-01__page>img.eg-book-logo{width:180px}}
@media(prefers-reduced-motion:reduce){.byq-gem--page-flip-book-01 *{transition:none!important}}
/* Current clipped source pages remain available to assistive technology. */
.byq-gem--page-flip-book-01__pages .byq-gem--page-flip-book-01__page{display:block}
.byq-gem--page-flip-book-01.is-reading .byq-gem--page-flip-book-01__page:not(.is-current),.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page:not(.is-current){display:none}
.byq-gem--page-flip-book-01 .eg-book-brand{display:flex;align-items:center;gap:7px;width:245px;max-width:100%;height:44px;margin-bottom:18px;color:#22a7d5;flex:none}
.byq-gem--page-flip-book-01 .eg-book-brand>span:first-child{position:relative;display:block;width:72px;height:42px;overflow:hidden;flex:none}
.byq-gem--page-flip-book-01 .eg-book-brand .eg-book-logo{position:absolute;left:0;top:50%;transform:translateY(-50%);width:72px;height:72px;max-width:none}
.byq-gem--page-flip-book-01 .eg-book-brand>span:last-child{font:200 26px/1 "Montserrat",sans-serif;letter-spacing:-.04em}
.byq-gem--page-flip-book-01.is-reading .byq-gem--page-flip-book-01__page.is-current[data-layout="quote"],.byq-gem--page-flip-book-01.is-fallback .byq-gem--page-flip-book-01__page.is-current[data-layout="quote"]{background:var(--pfb-ink);color:var(--pfb-paper);justify-content:center}
