:root {
  --gb-desk: #d8d4cb;
  --gb-desk-dark: #c7c1b6;
  --gb-paper-left: #f2eee4;
  --gb-paper-right: #faf7ef;
  --gb-paper-edge: #e5dfd3;
  --gb-ink: #242a31;
  --gb-muted: #71726e;
  --gb-magenta: #d62b89;
  --gb-cyan: #58c8d1;
  --gb-cover: #28313a;
  --gb-cover-dark: #1b2229;
  --gb-accent: #ddec66;
  --gb-line: rgba(36, 42, 49, .16);
  --gb-font: 'Noto Sans Georgian', Arial, sans-serif;
  --gb-shell: 1380px;
  --gb-gutter: clamp(20px, 3.2vw, 52px);
}

html {
  scroll-behavior: smooth;
  scroll-padding-top: 104px;
}

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

body.geobook-site {
  background-color: var(--gb-desk);
  background-image:
    radial-gradient(circle at 20% 10%, rgba(255,255,255,.34), transparent 28%),
    repeating-linear-gradient(118deg, rgba(255,255,255,.035) 0 1px, transparent 1px 5px),
    linear-gradient(145deg, var(--gb-desk), var(--gb-desk-dark));
  color: var(--gb-ink);
  font-family: var(--gb-font) !important;
  font-size: 16px;
  font-synthesis: none;
  line-height: 1.72;
  margin: 0;
  overflow-x: hidden;
  -webkit-font-smoothing: antialiased;
  text-rendering: optimizeLegibility;
}

body.geobook-site .elementor,
body.geobook-site .elementor-widget,
body.geobook-site .elementor-heading-title,
body.geobook-site .elementor-button,
body.geobook-site input,
body.geobook-site textarea,
body.geobook-site select {
  font-family: var(--gb-font) !important;
}

body.geobook-site .elementor-heading-title { color: inherit; }
body.geobook-site a { color: inherit; }
body.geobook-site img { height: auto; max-width: 100%; }
body.geobook-site ::selection { background: var(--gb-magenta); color: #fff; }
body.gb-menu-open { overflow: hidden; }
.geobook-page-shell, .geobook-main { min-height: 1px; }
.geobook-main { counter-reset: geobook-page; padding: 42px 22px 96px; }
.geobook-main > .elementor { margin: 0; }
.gb-scroll-marker { display: block; height: 1px; position: absolute; top: 40px; width: 1px; }

/* Stable geometry for Elementor's section/column output. */
.geobook-main .elementor-section,
.gb-elementor-template .elementor-section { width: 100%; }
.geobook-main .elementor-section > .elementor-container,
.gb-elementor-template .elementor-section > .elementor-container {
  display: flex !important;
  margin-left: auto;
  margin-right: auto;
  width: 100%;
}
.geobook-main .elementor-column,
.gb-elementor-template .elementor-column { min-width: 0; }
.geobook-main .elementor-column > .elementor-widget-wrap,
.gb-elementor-template .elementor-column > .elementor-widget-wrap {
  display: flex !important;
  width: 100%;
}
.geobook-main .elementor-widget,
.gb-elementor-template .elementor-widget { margin-bottom: 0; }
.geobook-main .elementor-widget-text-editor p:last-child { margin-bottom: 0; }

/* Clean, quiet header inspired by the supplied reference. */
.gb-elementor-template-header {
  background: rgba(255, 255, 255, .96);
  border-bottom: 1px solid rgba(36, 42, 49, .1);
  backdrop-filter: blur(14px);
  position: sticky;
  top: 0;
  transition: box-shadow .25s ease, background .25s ease;
  z-index: 9999;
}
.admin-bar .gb-elementor-template-header { top: 32px; }
.gb-is-scrolled .gb-elementor-template-header { box-shadow: 0 14px 42px rgba(22, 25, 29, .1); }
.gb-header-template > .elementor-container {
  align-items: center !important;
  flex-wrap: nowrap !important;
  height: 82px;
  max-width: 1460px !important;
  padding: 0 30px;
}
.gb-header-template .gb-header-brand { flex: 0 0 22% !important; width: 22% !important; }
.gb-header-template .gb-header-nav { flex: 1 1 auto !important; width: auto !important; }
.gb-header-template .gb-header-actions { flex: 0 0 16% !important; width: 16% !important; }
.gb-header-brand > .elementor-widget-wrap,
.gb-header-nav > .elementor-widget-wrap,
.gb-header-actions > .elementor-widget-wrap {
  align-content: center !important;
  align-items: center !important;
  flex-direction: row !important;
  flex-wrap: nowrap !important;
}
.gb-header-brand > .elementor-widget-wrap { gap: 12px; }
.gb-header-nav > .elementor-widget-wrap { gap: 4px; justify-content: center !important; }
.gb-header-actions > .elementor-widget-wrap { gap: 7px; justify-content: flex-end !important; }
.gb-header-brand .elementor-widget,
.gb-header-nav .elementor-widget,
.gb-header-actions .elementor-widget { flex: 0 0 auto !important; width: auto !important; }
.gb-header-logo { flex-basis: 43px !important; }
.gb-header-logo .elementor-widget-container { line-height: 0; }
.gb-header-logo img { display: block; height: 44px !important; object-fit: contain; width: 40px !important; }
.gb-header-title .elementor-heading-title {
  color: var(--gb-ink) !important;
  font-size: 11px !important;
  font-weight: 700 !important;
  letter-spacing: -.01em;
  line-height: 1.38 !important;
  max-width: 190px;
}
.gb-header-title a { text-decoration: none; }
.gb-nav-link .elementor-button,
.gb-lang-link .elementor-button {
  background: transparent !important;
  border: 1px solid transparent !important;
  border-radius: 999px !important;
  color: var(--gb-ink) !important;
  font-size: 12px !important;
  font-weight: 600 !important;
  line-height: 1 !important;
  padding: 11px 9px !important;
  transition: background .18s ease, border-color .18s ease;
  white-space: nowrap;
}
.gb-nav-link .elementor-button:hover,
.gb-lang-link .elementor-button:hover {
  background: #f1f0ec !important;
  border-color: rgba(36,42,49,.08) !important;
}
.gb-contact-link .elementor-button,
.gb-primary-button .elementor-button {
  background: var(--gb-ink) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: #fff !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  line-height: 1 !important;
  padding: 15px 19px !important;
  transition: background .2s ease, transform .2s ease;
  white-space: nowrap;
}
.gb-contact-link .elementor-button:hover,
.gb-primary-button .elementor-button:hover { background: var(--gb-magenta) !important; transform: translateY(-1px); }
.gb-mobile-menu-button { display: none; }

/* Digital book shell. */
.gb-book-cover,
.gb-book-spread {
  margin: 0 auto 58px;
  max-width: var(--gb-shell);
  position: relative;
}

.gb-book-cover {
  background:
    linear-gradient(90deg, rgba(0,0,0,.25), transparent 2.3%, transparent 8%, rgba(255,255,255,.035) 8.2%, transparent 8.5%),
    repeating-linear-gradient(0deg, rgba(255,255,255,.018) 0 1px, transparent 1px 4px),
    linear-gradient(135deg, var(--gb-cover), var(--gb-cover-dark));
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 10px 22px 22px 10px;
  box-shadow:
    -4px 10px 0 #171d22,
    10px 17px 0 -4px #f5efe3,
    15px 22px 0 -6px #d6cec0,
    0 44px 80px rgba(25,26,26,.35);
  color: #fff;
  min-height: 760px;
  overflow: hidden;
  transform-origin: left center;
}
.gb-book-cover::before {
  background: linear-gradient(90deg, rgba(0,0,0,.48), rgba(255,255,255,.08), rgba(0,0,0,.12));
  bottom: 0;
  box-shadow: 8px 0 25px rgba(0,0,0,.24);
  content: '';
  left: 0;
  position: absolute;
  top: 0;
  width: 118px;
  z-index: 1;
}
.gb-book-cover::after {
  border: 1px solid rgba(255,255,255,.09);
  border-radius: 0 14px 14px 0;
  bottom: 25px;
  content: '';
  left: 142px;
  pointer-events: none;
  position: absolute;
  right: 25px;
  top: 25px;
}
.gb-book-cover > .elementor-container { min-height: 760px; position: relative; z-index: 2; }
.gb-cover-face > .elementor-widget-wrap {
  align-content: flex-start !important;
  flex-direction: column !important;
  min-height: 760px;
  padding: 74px 8% 62px calc(118px + 8%);
  position: relative;
}
.gb-cover-face .elementor-widget { width: auto !important; }
.gb-cover-identity { margin-top: 34px; max-width: 1080px; width: 100% !important; }
.gb-cover-identity > .elementor-container { align-items: center !important; display: flex !important; max-width: none !important; width: 100%; }
.gb-cover-identity .elementor-column > .elementor-widget-wrap { align-items: center !important; flex-direction: row !important; padding: 0; }
.gb-cover-logo-column { flex: 0 0 18% !important; max-width: 170px; width: 18% !important; }
.gb-cover-title-column { flex: 1 1 auto !important; padding-left: clamp(22px, 3vw, 48px); width: 82% !important; }
.gb-cover-logo { background: #fff; padding: 9px 14px 8px; }
.gb-cover-logo .elementor-widget-container { line-height: 0; }
.gb-cover-logo img { display: block; height: 96px !important; object-fit: contain; width: auto !important; }
.gb-cover-edition .elementor-heading-title {
  color: var(--gb-cyan) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  letter-spacing: .14em;
  margin-top: 62px;
  text-transform: uppercase;
}
.gb-cover-title .elementor-heading-title {
  color: #fff !important;
  font-size: clamp(58px, 6.3vw, 96px) !important;
  font-weight: 650 !important;
  letter-spacing: -.065em;
  line-height: 1.05 !important;
  margin: 22px 0 28px;
  max-width: 920px;
}
.gb-cover-identity .gb-cover-title .elementor-heading-title { margin: 0; }
.gb-cover-subtitle { margin-top: 34px; }
.gb-cover-subtitle p { color: rgba(255,255,255,.78); font-size: 17px; margin: 0; }
.gb-cover-open { margin-top: 38px; }
.gb-cover-open .elementor-button {
  background: var(--gb-accent) !important;
  border: 0 !important;
  border-radius: 999px !important;
  color: var(--gb-cover-dark) !important;
  font-size: 13px !important;
  font-weight: 800 !important;
  padding: 17px 24px !important;
  transition: transform .2s ease, box-shadow .2s ease;
}
.gb-cover-open .elementor-button:hover { box-shadow: 0 9px 22px rgba(0,0,0,.22); transform: translateY(-2px); }
.gb-cover-code { bottom: 63px; position: absolute !important; right: 8%; width: auto !important; }
.gb-cover-code .elementor-heading-title { color: rgba(255,255,255,.38) !important; font-size: 11px !important; letter-spacing: .18em; }

.gb-book-spread {
  background: var(--gb-paper-left);
  border-radius: 9px 14px 14px 9px;
  box-shadow:
    0 2px 0 var(--gb-paper-edge),
    0 5px 0 #d8d1c5,
    0 30px 68px rgba(28, 29, 29, .24);
  isolation: isolate;
  overflow: hidden;
}
.gb-book-spread::before {
  background:
    linear-gradient(90deg, transparent, rgba(32,29,25,.08) 35%, rgba(255,255,255,.52) 49%, rgba(32,29,25,.12) 58%, transparent);
  bottom: 0;
  content: '';
  left: 50%;
  pointer-events: none;
  position: absolute;
  top: 0;
  transform: translateX(-50%);
  width: 66px;
  z-index: 5;
}
.gb-book-spread::after {
  background: linear-gradient(90deg, rgba(0,0,0,.05), transparent 2%, transparent 98%, rgba(0,0,0,.08));
  bottom: 0;
  content: '';
  left: 0;
  pointer-events: none;
  position: absolute;
  right: 0;
  top: 0;
  z-index: 4;
}
.gb-book-spread > .elementor-container { align-items: stretch !important; flex-wrap: nowrap !important; max-width: none !important; }
.gb-book-spread .gb-book-page { flex: 0 0 50% !important; width: 50% !important; }
.gb-book-page {
  counter-increment: geobook-page;
  min-height: 720px;
  position: relative;
}
.gb-book-page-left {
  background-color: var(--gb-paper-left);
  background-image:
    radial-gradient(circle at 8% 4%, rgba(255,255,255,.5), transparent 22%),
    repeating-linear-gradient(106deg, rgba(53,46,35,.018) 0 1px, transparent 1px 5px);
}
.gb-book-page-right {
  background-color: var(--gb-paper-right);
  background-image:
    radial-gradient(circle at 94% 7%, rgba(255,255,255,.7), transparent 25%),
    repeating-linear-gradient(72deg, rgba(53,46,35,.016) 0 1px, transparent 1px 5px);
}
.gb-book-page > .elementor-widget-wrap {
  align-content: flex-start !important;
  flex-direction: column !important;
  padding: 68px 70px 76px;
}
.gb-book-page-left > .elementor-widget-wrap { padding-right: 78px; }
.gb-book-page-right > .elementor-widget-wrap { padding-left: 78px; }
.gb-book-page::after {
  bottom: 30px;
  color: rgba(36,42,49,.45);
  content: counter(geobook-page, decimal-leading-zero);
  font-size: 10px;
  font-weight: 700;
  letter-spacing: .14em;
  position: absolute;
  z-index: 3;
}
.gb-book-page-left::after { left: 50px; }
.gb-book-page-right::after { right: 50px; }
.gb-book-spread-tall .gb-book-page { min-height: 860px; }

/* Book typography and recurring elements. */
.gb-book-chapter .elementor-heading-title,
.gb-book-running-head .elementor-heading-title,
.gb-book-kicker .elementor-heading-title,
.gb-book-folio .elementor-heading-title {
  font-size: 11px !important;
  font-weight: 750 !important;
  letter-spacing: .11em;
  line-height: 1.45 !important;
  text-transform: uppercase;
}
.gb-book-chapter .elementor-heading-title { color: var(--gb-magenta) !important; }
.gb-book-chapter .elementor-heading-title::before {
  background: currentColor;
  border-radius: 50%;
  content: '';
  display: inline-block;
  height: 7px;
  margin-right: 10px;
  width: 7px;
}
.gb-book-running-head .elementor-heading-title,
.gb-book-folio .elementor-heading-title,
.gb-book-kicker .elementor-heading-title { color: var(--gb-muted) !important; }
.gb-book-page-title .elementor-heading-title {
  color: var(--gb-ink) !important;
  font-size: clamp(44px, 4.25vw, 69px) !important;
  font-weight: 620 !important;
  letter-spacing: -.055em;
  line-height: 1.12 !important;
  margin-top: 42px;
}
.gb-book-section-title .elementor-heading-title {
  color: var(--gb-ink) !important;
  font-size: clamp(34px, 3.15vw, 52px) !important;
  font-weight: 620 !important;
  letter-spacing: -.048em;
  line-height: 1.18 !important;
  margin-bottom: 28px;
}
.gb-book-lead,
.gb-book-lead p {
  color: var(--gb-ink) !important;
  font-size: clamp(20px, 1.65vw, 27px) !important;
  font-weight: 430;
  line-height: 1.55;
}
.gb-book-body,
.gb-book-body p,
.gb-post-body,
.gb-post-body p {
  color: #4f514f !important;
  font-size: 15px !important;
  line-height: 1.88;
}
.gb-book-body p { margin: 0 0 18px; }
.gb-book-body h2, .gb-book-body h3, .gb-post-body h2, .gb-post-body h3 {
  color: var(--gb-ink);
  font-weight: 650;
  letter-spacing: -.025em;
  line-height: 1.3;
  margin: 30px 0 14px;
}
.gb-book-body a, .gb-post-body a { color: var(--gb-magenta); text-decoration-thickness: 1px; text-underline-offset: 3px; }
.gb-book-link { margin-top: 30px; }
.gb-book-link .elementor-button {
  background: transparent !important;
  border: 1px solid var(--gb-ink) !important;
  border-radius: 999px !important;
  color: var(--gb-ink) !important;
  font-size: 12px !important;
  font-weight: 700 !important;
  padding: 14px 18px !important;
  transition: background .2s ease, color .2s ease, transform .2s ease;
}
.gb-book-link .elementor-button:hover { background: var(--gb-ink) !important; color: #fff !important; transform: translateY(-1px); }
.gb-book-stat { margin-top: auto; }
.gb-book-stat .elementor-heading-title {
  color: var(--gb-magenta) !important;
  font-size: clamp(65px, 7vw, 104px) !important;
  font-weight: 650 !important;
  letter-spacing: -.07em;
  line-height: .9 !important;
}
.gb-book-stat small { color: var(--gb-ink); display: block; font-size: 11px; letter-spacing: .03em; line-height: 1.4; margin-top: 16px; }
.gb-book-quote,
.gb-book-quote p { color: var(--gb-ink) !important; font-size: clamp(24px,2.2vw,34px) !important; line-height: 1.52; }
.gb-book-quote { border-left: 4px solid var(--gb-magenta); margin-top: 36px; padding-left: 25px; }
.gb-book-folio { margin-top: auto; }
.gb-book-lead-page > .elementor-widget-wrap { gap: 34px; justify-content: center !important; }
.gb-book-title-page { background: var(--gb-cover) !important; color: #fff; }
.gb-book-title-page .gb-book-page-title .elementor-heading-title { color: #fff !important; }
.gb-book-title-page .gb-book-chapter .elementor-heading-title { color: var(--gb-cyan) !important; }
.gb-book-title-page::after { color: rgba(255,255,255,.42); }
.gb-book-chapter-opener .gb-book-page { min-height: 760px; }

/* Contents, index and member rows. */
.gb-toc-page > .elementor-widget-wrap,
.gb-project-index-page > .elementor-widget-wrap { gap: 0; }
.gb-toc-link,
.gb-project-index-link,
.gb-member-entry { border-top: 1px solid var(--gb-line); }
.gb-toc-link:last-child,
.gb-project-index-link:last-child,
.gb-member-entry:last-child { border-bottom: 1px solid var(--gb-line); }
.gb-toc-link .elementor-heading-title,
.gb-project-index-link .elementor-heading-title,
.gb-member-entry .elementor-heading-title { font-size: 15px !important; font-weight: 600 !important; line-height: 1.3 !important; }
.gb-toc-link a,
.gb-project-index-link a,
.gb-member-entry a {
  align-items: center;
  display: flex;
  gap: 18px;
  padding: 21px 0;
  text-decoration: none;
  transition: color .18s ease, padding .18s ease;
}
.gb-toc-link a:hover,
.gb-project-index-link a:hover,
.gb-member-entry a:hover { color: var(--gb-magenta); padding-left: 8px; }
.gb-toc-link span,
.gb-project-index-link span,
.gb-member-entry span { color: var(--gb-muted); font-size: 10px; letter-spacing: .1em; min-width: 27px; }
.gb-toc-link b,
.gb-project-index-link b,
.gb-member-entry b { font-size: 14px; font-weight: 500; margin-left: auto; }
.gb-toc-page .gb-book-page-title { margin-bottom: 38px; }
.gb-project-index-page .gb-book-section-title { margin-bottom: 32px; }
.gb-members-page .gb-member-entry .elementor-heading-title { font-size: 13px !important; }
.gb-members-page .gb-member-entry a { padding: 15px 0; }
.gb-home-members-list > .elementor-widget-wrap { justify-content: center !important; }
.gb-home-members-list .gb-member-entry .elementor-heading-title { font-size: 13px !important; }
.gb-home-members-list .gb-member-entry a { padding: 14px 0; }
.gb-home-members-list .gb-book-link { margin-top: 25px; }
.gb-partner-entry .elementor-heading-title {
  align-items: center;
  display: flex;
  gap: 18px;
  padding: 15px 0;
}
.gb-partner-entry .elementor-heading-title > span { flex: 0 0 27px; }
.gb-partner-entry em { flex: 1 1 auto; font-style: normal; }
.gb-members-stat .elementor-heading-title {
  color: var(--gb-magenta) !important;
  font-size: clamp(110px, 13vw, 190px) !important;
  font-weight: 650 !important;
  letter-spacing: -.09em;
  line-height: .82 !important;
}
.gb-members-intro-page > .elementor-widget-wrap { justify-content: center !important; }

/* Photographic pages and galleries. */
.gb-book-image-page { overflow: hidden; }
.gb-book-image-page > .elementor-widget-wrap { padding: 0 !important; }
.gb-book-full-image,
.gb-book-full-image .elementor-widget-container,
.gb-book-full-image img { height: 100% !important; min-height: 720px; width: 100%; }
.gb-book-full-image img { filter: saturate(.84) contrast(.96); object-fit: cover; }
.gb-book-image-caption { bottom: 32px; left: 34px; position: absolute !important; width: auto !important; z-index: 3; }
.gb-book-image-caption .elementor-heading-title,
.gb-book-image-caption p {
  background: rgba(255,255,255,.9);
  border-radius: 999px;
  color: var(--gb-ink) !important;
  display: inline-block;
  font-size: 10px !important;
  font-weight: 700;
  letter-spacing: .04em;
  margin: 0;
  padding: 9px 13px;
}
.gb-gallery { margin-top: 32px; }
.gb-gallery > .elementor-container { display: flex !important; flex-wrap: nowrap !important; gap: 8px; }
.gb-gallery .elementor-column { flex: 1 1 0 !important; width: auto !important; }
.gb-gallery .elementor-widget-wrap { padding: 0 !important; }
.gb-gallery-image, .gb-gallery-image .elementor-widget-container { height: 140px; width: 100%; }
.gb-gallery-image img { filter: saturate(.85); height: 140px !important; object-fit: cover; width: 100%; }
.gb-project-chapter .gb-gallery { margin: 22px 0 30px; }
.gb-project-feature-image {
  border-radius: 3px;
  margin-top: 28px;
  overflow: hidden;
  width: 100% !important;
}
.gb-project-feature-image .elementor-widget-container,
.gb-project-feature-image img { height: 285px !important; width: 100%; }
.gb-project-feature-image img { filter: saturate(.88) contrast(.98); object-fit: cover; }
.gb-project-title-page .gb-book-link { margin-top: 24px; }
.gb-project-number .elementor-heading-title {
  color: var(--gb-magenta) !important;
  font-size: clamp(100px, 12vw, 178px) !important;
  font-weight: 650 !important;
  letter-spacing: -.09em;
  line-height: .82 !important;
  margin-bottom: auto;
}
.gb-project-title-page > .elementor-widget-wrap { justify-content: space-between !important; }
.gb-project-title-page .gb-book-section-title { max-width: 520px; }

/* Board. */
.gb-board-page > .elementor-widget-wrap { gap: 22px; }
.gb-board-entry { border-top: 1px solid var(--gb-line); padding-top: 18px; }
.gb-board-entry > .elementor-container { align-items: center !important; display: flex !important; gap: 18px; }
.gb-board-entry .elementor-column > .elementor-widget-wrap { flex-direction: column !important; padding: 0; }
.gb-board-photo img { border-radius: 50%; filter: grayscale(1); height: 92px !important; object-fit: cover; width: 92px !important; }
.gb-board-name .elementor-heading-title { color: var(--gb-ink) !important; font-size: 15px !important; font-weight: 700 !important; line-height: 1.35 !important; }
.gb-board-role p { color: var(--gb-muted); font-size: 11px; line-height: 1.5; margin: 5px 0 0; }

/* News and articles. */
.gb-home-news-list > .elementor-widget-wrap { justify-content: center !important; }
.gb-book-news-date .elementor-heading-title { color: var(--gb-magenta) !important; font-size: 10px !important; font-weight: 750 !important; letter-spacing: .09em; margin-top: 25px; }
.gb-book-news-title { border-bottom: 1px solid var(--gb-line); }
.gb-book-news-title .elementor-heading-title { color: var(--gb-ink) !important; font-size: 20px !important; font-weight: 580 !important; line-height: 1.48 !important; }
.gb-book-news-title a { display: block; padding: 10px 0 25px; text-decoration: none; transition: color .18s ease; }
.gb-book-news-title a:hover { color: var(--gb-magenta); }
.gb-news-card-page > .elementor-widget-wrap { justify-content: flex-start !important; }
.gb-empty-page > .elementor-widget-wrap { align-items: center !important; justify-content: center !important; text-align: center; }
.gb-news-image, .gb-news-image .elementor-widget-container { height: 300px; margin-bottom: 30px; overflow: hidden; width: 100%; }
.gb-news-image img { filter: saturate(.82); height: 300px !important; object-fit: cover; transition: transform .55s ease; width: 100%; }
.gb-news-card-page:hover .gb-news-image img { transform: scale(1.025); }
.gb-book-news-card-title .elementor-heading-title { color: var(--gb-ink) !important; font-size: clamp(24px,2.2vw,34px) !important; font-weight: 620 !important; letter-spacing: -.035em; line-height: 1.3 !important; margin: 14px 0 18px; }
.gb-book-news-excerpt, .gb-book-news-excerpt p { color: var(--gb-muted) !important; font-size: 14px !important; line-height: 1.72; }
.gb-post-title .elementor-heading-title { font-size: clamp(35px,3.7vw,58px) !important; }
.gb-post-body img { height: auto; margin: 25px 0; width: 100%; }

/* Last spread. */
.gb-book-contact { background: var(--gb-cyan); }
.gb-book-contact .gb-book-page-left,
.gb-book-contact .gb-book-page-right { background: transparent; }
.gb-book-contact .gb-book-page { min-height: 610px; }
.gb-book-contact-title .elementor-heading-title {
  color: var(--gb-ink) !important;
  font-size: clamp(42px,4vw,63px) !important;
  font-weight: 630 !important;
  letter-spacing: -.055em;
  line-height: 1.17 !important;
  margin-top: 45px;
}
.gb-contact-right > .elementor-widget-wrap { justify-content: center !important; }
.gb-book-email { border-bottom: 1px solid rgba(36,42,49,.34); margin-top: 42px; }
.gb-book-email .elementor-heading-title { font-size: clamp(16px,1.55vw,23px) !important; font-weight: 650 !important; overflow-wrap: anywhere; }
.gb-book-email a { display: block; padding-bottom: 14px; text-decoration: none; }

/* Footer / colophon. */
.gb-footer-template { background: var(--gb-cover-dark); color: #fff; }
.gb-footer-template > .elementor-container { align-items: center !important; max-width: 1460px !important; min-height: 168px; padding: 30px 42px; }
.gb-footer-brand > .elementor-widget-wrap { align-items: center !important; flex-direction: row !important; flex-wrap: nowrap !important; gap: 13px; }
.gb-footer-brand .elementor-widget { flex: 0 0 auto !important; width: auto !important; }
.gb-footer-logo img { height: 48px !important; object-fit: contain; width: 44px !important; }
.gb-footer-title .elementor-heading-title { color: #fff !important; font-size: 11px !important; font-weight: 700 !important; }
.gb-footer-title a { text-decoration: none; }
.gb-footer-socials > .elementor-widget-wrap { align-items: center !important; flex-direction: row !important; flex-wrap: wrap !important; gap: 8px 18px; }
.gb-footer-socials .elementor-widget { flex: 0 0 auto !important; width: auto !important; }
.gb-footer-socials .gb-footer-social-title { flex: 0 0 100% !important; width: 100% !important; }
.gb-footer-social-title .elementor-heading-title { color: rgba(255,255,255,.45) !important; font-size: 10px !important; font-weight: 700 !important; letter-spacing: .1em; text-transform: uppercase; }
.gb-footer-social-link .elementor-heading-title { color: #fff !important; font-size: 11px !important; font-weight: 650 !important; }
.gb-footer-social-link a { text-decoration: none; transition: color .18s ease; }
.gb-footer-social-link a:hover { color: var(--gb-cyan); }
.gb-footer-actions > .elementor-widget-wrap { align-items: flex-end !important; flex-direction: column !important; gap: 14px; }
.gb-footer-actions .elementor-widget { width: auto !important; }
.gb-footer-top .elementor-heading-title { color: rgba(255,255,255,.52) !important; font-size: 11px !important; margin: 0; }
.gb-footer-top { text-align: right; }
.gb-footer-top a { text-decoration: none; }

/* Header/footer and content fallback when Elementor is unavailable. */
.gb-fallback-header { align-items: center; background: #fff; border-bottom: 1px solid var(--gb-line); display: flex; height: 82px; padding: 0 30px; position: sticky; top: 0; z-index: 9999; }
.gb-fallback-brand { align-items: center; display: flex; font-size: 12px; font-weight: 700; gap: 12px; text-decoration: none; }
.gb-fallback-brand img { height: 44px; object-fit: contain; width: 40px; }
.gb-fallback-nav { margin-left: auto; }
.gb-fallback-nav ul { align-items: center; display: flex; gap: 24px; list-style: none; margin: 0; padding: 0; }
.gb-fallback-nav a { font-size: 12px; font-weight: 650; text-decoration: none; }
.gb-menu-toggle { background: none; border: 0; display: none; margin-left: auto; padding: 10px; }
.gb-menu-toggle > span:not(.screen-reader-text) { background: var(--gb-ink); display: block; height: 2px; margin: 4px 0; width: 24px; }
.gb-fallback-footer { align-items: center; background: var(--gb-cover-dark); color: #fff; display: flex; justify-content: space-between; min-height: 145px; padding: 36px var(--gb-gutter); }
.gb-native-page, .gb-native-article { background: var(--gb-paper-right); box-shadow: 0 24px 60px rgba(0,0,0,.16); margin: 45px auto; max-width: 900px; padding: clamp(38px,6vw,85px); }

/* Soft page-curl navigation. The temporary book is positioned over the
   currently visible spread, so no blank full-screen rectangle appears. */
.gb-page-turn-layer {
  inset: 0;
  overflow: visible;
  pointer-events: none;
  position: fixed;
  z-index: 100000;
}
.gb-flip-stage {
  contain: layout style;
  display: block !important;
  opacity: 0;
  perspective: 2600px;
  pointer-events: none;
  position: fixed !important;
  transform: translate3d(0,0,0);
  transition: opacity .07s linear;
  will-change: opacity, transform;
}
body.gb-page-turning .gb-flip-stage { opacity: 1; }
body.gb-page-turn-finishing .gb-flip-stage { opacity: 0; transition-duration: .12s; }
.gb-flip-stage .stf__wrapper,
.gb-flip-stage .stf__block { overflow: visible !important; }
.gb-flip-stage .stf__block { will-change: transform; }
.gb-flip-stage .elementor-column > .elementor-widget-wrap,
.gb-flip-stage .elementor-section > .elementor-container {
  display: flex !important;
  width: 100%;
}
.gb-flip-transition-page {
  backface-visibility: hidden;
  box-sizing: border-box;
  contain: layout style;
  margin: 0 !important;
  max-width: none !important;
  overflow: hidden !important;
  transform-style: preserve-3d;
  will-change: clip-path, transform;
}
.gb-flip-transition-page.gb-book-page {
  min-height: 0 !important;
}
.gb-flip-transition-page.gb-book-page > .elementor-widget-wrap {
  height: 100%;
  min-height: 0 !important;
  overflow: hidden;
}
.gb-flip-transition-page.gb-book-cover {
  border-radius: 7px 15px 15px 7px;
  box-shadow: none !important;
  height: 100% !important;
  min-height: 0 !important;
}
.gb-flip-transition-page.gb-book-cover > .elementor-container,
.gb-flip-transition-page.gb-book-cover .gb-cover-face > .elementor-widget-wrap {
  height: 100% !important;
  min-height: 0 !important;
}
.gb-flip-paper {
  align-items: center;
  background-color: var(--gb-paper-right);
  background-image:
    radial-gradient(circle at 80% 8%, rgba(255,255,255,.8), transparent 25%),
    repeating-linear-gradient(106deg, rgba(53,46,35,.02) 0 1px, transparent 1px 5px);
  color: var(--gb-ink);
  display: flex;
  flex-direction: column;
  justify-content: center;
  padding: 12%;
}
.gb-flip-paper-left {
  background-color: var(--gb-paper-left);
  background-image:
    linear-gradient(90deg, transparent 92%, rgba(42,38,33,.08)),
    repeating-linear-gradient(106deg, rgba(53,46,35,.02) 0 1px, transparent 1px 5px);
}
.gb-flip-paper-right {
  background-image:
    linear-gradient(90deg, rgba(42,38,33,.09), transparent 9%),
    repeating-linear-gradient(74deg, rgba(53,46,35,.018) 0 1px, transparent 1px 5px);
}
.gb-flip-paper-mark {
  border: 1px solid rgba(36,42,49,.2);
  border-radius: 50%;
  color: var(--gb-magenta);
  display: grid;
  font-size: 10px;
  font-weight: 750;
  height: 58px;
  letter-spacing: .12em;
  place-items: center;
  width: 58px;
}
.gb-flip-paper-caption {
  color: var(--gb-muted);
  font-size: 11px;
  font-weight: 650;
  letter-spacing: .06em;
  margin-top: 24px;
  max-width: 240px;
  text-align: center;
}
.gb-flip-stage .stf__outerShadow,
.gb-flip-stage .stf__innerShadow,
.gb-flip-stage .stf__hardShadow,
.gb-flip-stage .stf__hardInnerShadow {
  will-change: opacity, transform;
}
.gb-flip-stage-fallback { perspective: 2400px; }
.gb-fallback-turn-page {
  display: block !important;
  height: 100% !important;
  left: 0;
  position: absolute !important;
  top: 0;
  transform-origin: left center;
  width: 100% !important;
}
body.gb-fallback-turning .gb-fallback-turn-page {
  animation: gb-fallback-page-curl .74s cubic-bezier(.46,.02,.2,1) forwards;
}
@keyframes gb-fallback-page-curl {
  0% { border-radius: 0 12px 12px 0; filter: brightness(1); transform: rotateY(0deg) translateZ(0); }
  38% { border-radius: 0 34% 46% 0; filter: brightness(.83); transform: rotateY(-72deg) translateZ(45px); }
  100% { border-radius: 12px 0 0 12px; filter: brightness(.98); transform: rotateY(-178deg) translateZ(0); }
}
body.gb-page-fading .geobook-page-shell { opacity: .72; transition: opacity .18s ease; }
@keyframes gb-cover-enter {
  from { opacity: 0; transform: rotateY(-7deg) translateY(18px); }
  to { opacity: 1; transform: rotateY(0) translateY(0); }
}
.geobook-front-page .gb-book-cover { animation: gb-cover-enter .8s cubic-bezier(.2,.7,.2,1) both; }

@media (max-width: 1180px) {
	.gb-header-template .gb-header-brand { flex-basis: 8% !important; width: 8% !important; }
	.gb-header-template .gb-header-nav { flex-basis: 84% !important; width: 84% !important; }
	.gb-header-template .gb-header-actions { flex-basis: 8% !important; width: 8% !important; }
  .gb-header-title { display: none; }
  .gb-nav-link .elementor-button { padding-left: 9px !important; padding-right: 9px !important; }
  .gb-contact-link { display: none; }
  .gb-book-page > .elementor-widget-wrap { padding: 55px 52px 68px; }
  .gb-book-page-left > .elementor-widget-wrap { padding-right: 62px; }
  .gb-book-page-right > .elementor-widget-wrap { padding-left: 62px; }
}

@media (max-width: 900px) {
  .geobook-main { padding-left: 14px; padding-right: 14px; }
  .gb-header-template > .elementor-container { height: 72px; padding: 0 20px; }
  .gb-header-template .gb-header-brand { flex: 1 1 auto !important; width: auto !important; }
  .gb-header-template .gb-header-nav {
    background: #fff;
    bottom: 0;
    display: none;
    left: 0;
    overflow-y: auto;
    padding: 110px 28px 40px;
    position: fixed;
    right: 0;
    top: 0;
    width: 100% !important;
    z-index: -1;
  }
  .gb-menu-open .gb-header-template .gb-header-nav { display: block; }
  .gb-header-nav > .elementor-widget-wrap { align-items: stretch !important; flex-direction: column !important; gap: 5px; }
  .gb-header-nav .elementor-widget { width: 100% !important; }
  .gb-nav-link .elementor-button { border-bottom: 1px solid var(--gb-line) !important; border-radius: 0 !important; display: block; font-size: 26px !important; padding: 20px 0 !important; text-align: left; width: 100%; }
  .gb-header-template .gb-header-actions { flex: 0 0 auto !important; width: auto !important; }
  .gb-lang-link { display: none; }
  .gb-mobile-menu-button { display: block; }
  .gb-mobile-menu-button .elementor-button {
    background: var(--gb-ink) !important;
    border-radius: 999px !important;
    color: #fff !important;
    font-size: 11px !important;
    font-weight: 700 !important;
    padding: 13px 16px !important;
  }
  .gb-book-cover { min-height: 700px; }
  .gb-book-cover > .elementor-container, .gb-cover-face > .elementor-widget-wrap { min-height: 700px; }
	.gb-cover-face > .elementor-widget-wrap { padding-left: calc(95px + 7%); }
	.gb-cover-logo img { height: 78px !important; }
  .gb-book-cover::before { width: 95px; }
  .gb-book-cover::after { left: 117px; }
  .gb-book-page > .elementor-widget-wrap { padding: 48px 42px 66px; }
  .gb-book-page-left > .elementor-widget-wrap { padding-right: 48px; }
  .gb-book-page-right > .elementor-widget-wrap { padding-left: 48px; }
  .gb-book-page { min-height: 650px; }
  .gb-book-spread-tall .gb-book-page { min-height: 760px; }
  .gb-book-page-title .elementor-heading-title { font-size: clamp(34px,5vw,50px) !important; }
  .gb-book-body, .gb-book-body p { font-size: 14px !important; }
}

@media (max-width: 767px) {
  html { scroll-padding-top: 80px; }
  .admin-bar .gb-elementor-template-header { top: 46px; }
  .geobook-main { padding: 22px 10px 60px; }
  .gb-book-cover, .gb-book-spread { margin-bottom: 30px; }
  .gb-book-cover {
    border-radius: 7px 16px 16px 7px;
    min-height: 640px;
    box-shadow: -3px 7px 0 #171d22, 7px 12px 0 -3px #f5efe3, 0 28px 50px rgba(25,26,26,.32);
  }
  .gb-book-cover > .elementor-container, .gb-cover-face > .elementor-widget-wrap { min-height: 640px; }
  .gb-book-cover::before { width: 54px; }
  .gb-book-cover::after { bottom: 16px; left: 67px; right: 16px; top: 16px; }
  .gb-cover-face > .elementor-widget-wrap { padding: 48px 35px 45px 90px; }
	.gb-cover-logo img { height: 58px !important; }
	.gb-cover-identity { margin-top: 24px; }
	.gb-cover-title-column { padding-left: 18px; }
  .gb-cover-title .elementor-heading-title { font-size: clamp(43px,12vw,67px) !important; }
  .gb-book-spread { border-radius: 6px 10px 10px 6px; overflow: visible; }
  .gb-book-spread::before { display: none; }
  .gb-book-spread > .elementor-container { display: block !important; }
  .gb-book-spread .gb-book-page { display: block; min-height: 0; width: 100% !important; }
  .gb-book-page > .elementor-widget-wrap,
  .gb-book-page-left > .elementor-widget-wrap,
  .gb-book-page-right > .elementor-widget-wrap { min-height: 600px; padding: 45px 34px 65px; }
  .gb-book-page-left { box-shadow: inset 0 -1px 0 rgba(36,42,49,.11); }
  .gb-book-page::after { bottom: 23px; }
  .gb-book-page-left::after { left: 30px; }
  .gb-book-page-right::after { right: 30px; }
  .gb-book-spread-tall .gb-book-page { min-height: 0; }
  .gb-book-spread-tall .gb-book-page > .elementor-widget-wrap { min-height: 650px; }
  .gb-book-image-page, .gb-book-image-page > .elementor-widget-wrap { min-height: 580px !important; }
  .gb-book-full-image, .gb-book-full-image .elementor-widget-container, .gb-book-full-image img { min-height: 580px; }
  .gb-gallery > .elementor-container { gap: 6px; }
  .gb-gallery-image, .gb-gallery-image .elementor-widget-container, .gb-gallery-image img { height: 105px !important; }
  .gb-project-feature-image .elementor-widget-container, .gb-project-feature-image img { height: 245px !important; }
  .gb-book-contact .gb-book-page > .elementor-widget-wrap { min-height: 470px; }
	.gb-footer-template > .elementor-container { flex-wrap: wrap !important; gap: 20px; padding: 32px 24px; }
	.gb-footer-template .elementor-column { flex: 0 0 100% !important; text-align: left; width: 100% !important; }
	.gb-footer-actions > .elementor-widget-wrap { align-items: flex-start !important; }
  .gb-footer-top { text-align: left; }
  .gb-fallback-nav { background: #fff; display: none; inset: 72px 0 0; padding: 35px; position: fixed; }
  .gb-menu-open .gb-fallback-nav { display: block; }
  .gb-fallback-nav ul { align-items: stretch; flex-direction: column; }
  .gb-menu-toggle { display: block; }
  .gb-flip-stage .gb-book-page > .elementor-widget-wrap { padding: 35px 27px 54px; }
}

@media (max-width: 480px) {
  .gb-header-logo img { height: 39px !important; width: 36px !important; }
	.gb-cover-face > .elementor-widget-wrap { padding-left: 76px; padding-right: 25px; }
  .gb-book-cover::before { width: 45px; }
  .gb-book-cover::after { left: 57px; }
	.gb-cover-title .elementor-heading-title { font-size: 42px !important; }
	.gb-cover-logo img { height: 48px !important; }
  .gb-cover-subtitle p { font-size: 14px; }
  .gb-book-page > .elementor-widget-wrap,
  .gb-book-page-left > .elementor-widget-wrap,
  .gb-book-page-right > .elementor-widget-wrap { padding-left: 25px; padding-right: 25px; }
  .gb-book-page-title .elementor-heading-title { font-size: 36px !important; }
  .gb-book-section-title .elementor-heading-title { font-size: 31px !important; }
  .gb-book-lead, .gb-book-lead p { font-size: 19px !important; }
  .gb-gallery > .elementor-container { flex-wrap: wrap !important; }
  .gb-gallery .elementor-column { flex: 0 0 calc(50% - 3px) !important; }
  .gb-project-feature-image .elementor-widget-container, .gb-project-feature-image img { height: 220px !important; }
}

@media (prefers-reduced-motion: reduce) {
  html { scroll-behavior: auto; }
  *, *::before, *::after { animation-duration: .01ms !important; animation-iteration-count: 1 !important; scroll-behavior: auto !important; transition-duration: .01ms !important; }
}
