/* Book Distribution Services — independent editorial design system */
:root {
  --bds-ink: #071c2c;
  --bds-navy: #102f49;
  --bds-red: #b42336;
  --bds-red-dark: #891a29;
  --bds-gold: #d3a64a;
  --bds-paper: #f7f3eb;
  --bds-paper-deep: #eee7da;
  --bds-white: #fffdf9;
  --bds-text: #35414a;
  --bds-line: rgba(7, 28, 44, .14);
  --bds-shadow: 0 18px 45px rgba(7, 28, 44, .10);
  --tp-common-blue: var(--bds-ink);
  --tp-common-red: var(--bds-red);
  --tp-text-body: var(--bds-text);
}

html { background: var(--bds-paper); }

body {
  color: var(--bds-text);
  background: var(--bds-white);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  letter-spacing: 0;
}

h1, h2, .tp-section-title-grotesk, .faq-title,
.journey-heading h2, .tp-breadcrumb-title {
  color: var(--bds-ink);
  font-family: Georgia, "Times New Roman", serif !important;
  font-weight: 700;
  letter-spacing: -.035em;
  line-height: 1.04;
}

h3, h4, h5, h6 {
  color: var(--bds-ink);
  font-family: Inter, "Segoe UI", Arial, sans-serif;
  font-weight: 700;
}

p { color: var(--bds-text); }

::selection { color: #fff; background: var(--bds-red); }

/* Header */
.tp-header-area {
  margin-top: 0 !important;
  background: rgba(255, 253, 249, .96);
  border-bottom: 1px solid var(--bds-line);
  box-shadow: 0 8px 30px rgba(7, 28, 44, .045);
  backdrop-filter: blur(15px);
}

.header-sticky { background: rgba(255, 253, 249, .98) !important; }

.tp-header-logo img { max-height: 70px; object-fit: contain; }

.tp-header-menu > nav > ul > li > a,
.tp-header-menu nav ul li a {
  color: var(--bds-ink);
  font-weight: 700;
  letter-spacing: .015em;
}

.tp-header-menu > nav > ul > li > a::after {
  background: var(--bds-red) !important;
  height: 2px !important;
}

.tp-header-menu nav ul li .tp-submenu {
  padding: 12px;
  border: 1px solid var(--bds-line);
  border-radius: 6px;
  background: var(--bds-white);
  box-shadow: var(--bds-shadow);
}

.tp-header-menu nav ul li .tp-submenu li a { border-radius: 4px; }
.tp-header-menu nav ul li .tp-submenu li a:hover { color: #fff; background: var(--bds-red); }

/* Buttons use a distinctive clipped editorial silhouette */
.tp-btn-black-radius,
.tp-btn-black-radius.btn-blue-bg,
.tp-btn-yellow-green.green-solid,
.tp-btn-black-square,
.btn-primary,
.bds-hero-btn,
.popup-btn {
  border-radius: 4px 16px 4px 16px !important;
  background: var(--bds-red) !important;
  border: 1px solid var(--bds-red) !important;
  box-shadow: 0 10px 22px rgba(180, 35, 54, .18);
}

.tp-btn-black-radius:hover,
.tp-btn-yellow-green.green-solid:hover,
.tp-btn-black-square:hover,
.btn-primary:hover,
.bds-hero-btn:hover,
.popup-btn:hover {
  color: #fff !important;
  background: var(--bds-ink) !important;
  border-color: var(--bds-ink) !important;
  transform: translateY(-2px);
}

.tp-btn-black-radius i,
.tp-btn-black-radius.btn-blue-bg i {
  border-radius: 3px 12px 3px 12px !important;
  background: #fff !important;
}

.two-btn-yel,
.tp-btn-black-radius.btn-border,
.bds-hero-btn-secondary {
  color: var(--bds-ink) !important;
  background: transparent !important;
  border-color: var(--bds-ink) !important;
  box-shadow: none;
}

.tp-btn-black-radius.two-btn-yel.text-white {
  color: #fff !important;
  background: rgba(255,255,255,.04) !important;
  border-color: rgba(255,255,255,.78) !important;
}

.tp-btn-black-radius.two-btn-yel.text-white i {
  color: var(--bds-ink) !important;
  background: #fff !important;
}

.tp-btn-black-radius.two-btn-yel.text-white:hover {
  color: #fff !important;
  background: var(--bds-red) !important;
  border-color: var(--bds-red) !important;
}

/* Alternating paper surfaces */
.light-bg, .light-blue-bg, .journey-section,
.tp-service-4-area, .st-testimonial-area {
  background-color: var(--bds-paper) !important;
}

main > section:nth-of-type(even),
main > div:nth-of-type(even) { border-color: var(--bds-line); }

.tp-section-title-grotesk::before,
.faq-title::before,
.journey-heading h2::before {
  content: "";
  display: block;
  width: 54px;
  height: 4px;
  margin-bottom: 18px;
  background: linear-gradient(90deg, var(--bds-red) 0 72%, var(--bds-gold) 72%);
}

.text-center .tp-section-title-grotesk::before,
.journey-heading h2::before {
  margin-right: auto;
  margin-left: auto;
}

/* Cards and content modules */
.tp-service-4-solution-item,
.dgm-service-item,
.tp-blog-item,
.tp-team-item,
.tp-testimonial-item,
.accordion-items,
.contact-form-box,
.ai-about-thumb-box {
  border: 1px solid var(--bds-line) !important;
  border-radius: 5px 24px 5px 24px !important;
  background: var(--bds-white);
  box-shadow: 0 12px 34px rgba(7, 28, 44, .06);
}

.tp-service-4-solution-item,
.dgm-service-item,
.tp-blog-item {
  position: relative;
  overflow: hidden;
}

.tp-service-4-solution-item::before,
.dgm-service-item::before,
.tp-blog-item::before {
  content: "";
  position: absolute;
  top: 0;
  right: 0;
  left: 0;
  height: 4px;
  background: linear-gradient(90deg, var(--bds-red), var(--bds-gold));
}

.tp-service-4-solution-item:hover,
.dgm-service-item:hover,
.tp-blog-item:hover {
  transform: translateY(-6px);
  box-shadow: var(--bds-shadow);
}

.accordion-items { margin-bottom: 12px; overflow: hidden; }
.accordion-buttons { color: var(--bds-ink) !important; font-weight: 700 !important; }
.accordion-items.faq-active, .accordion-items:has(.show) { border-color: rgba(180, 35, 54, .35) !important; }

/* Forms */
input[type=text], input[type=email], input[type=tel], input[type=number],
input[type=password], input[type=url], select, textarea {
  border: 1px solid var(--bds-line) !important;
  border-radius: 3px 12px 3px 12px !important;
  background: #fff !important;
}

input:focus, select:focus, textarea:focus {
  border-color: var(--bds-red) !important;
  box-shadow: 0 0 0 4px rgba(180, 35, 54, .08);
}

/* Breadcrumbs and image treatment */
.tp-breadcrumb-area, .ar-hero-area, .about-us-area {
  background-color: var(--bds-paper) !important;
}

.p-relative > img.img-fluid,
.ai-about-thumb img,
.tp-blog-thumb img {
  border-radius: 6px 32px 6px 32px;
}

.ai-brand-slider-wrap {
  background: var(--bds-white);
  border-top: 1px solid var(--bds-line);
  border-bottom: 1px solid var(--bds-line);
}

/* Process timeline */
.journey-section { border-top: 1px solid var(--bds-line); border-bottom: 1px solid var(--bds-line); }
.journey-heading p { color: var(--bds-text); }
.number { border-radius: 4px 14px 4px 14px; background: var(--bds-red); box-shadow: 0 8px 20px rgba(180,35,54,.22); }
.timeline-center::before { background: rgba(7, 28, 44, .18); }
.timeline-left span, .timeline-right span { color: var(--bds-red); }

/* Floating contact */
.contact-card {
  width: 275px;
  border: 1px solid rgba(255,255,255,.14);
  border-radius: 5px 22px 5px 22px;
  background: var(--bds-ink);
  box-shadow: 0 18px 45px rgba(7, 28, 44, .28);
}

/* Footer */
.tp-footer-area, footer, .tp-footer-bg {
  color: rgba(255,255,255,.78);
  background-color: var(--bds-ink) !important;
}

.tp-footer-area h2, .tp-footer-area h3, .tp-footer-area h4,
footer h2, footer h3, footer h4 { color: #fff !important; }

.tp-footer-area a, footer a { color: rgba(255,255,255,.78); }
.tp-footer-area a:hover, footer a:hover { color: var(--bds-gold); }

.tp-footer-area::before, footer::before {
  content: "";
  display: block;
  height: 5px;
  background: linear-gradient(90deg, var(--bds-red) 0 45%, var(--bds-gold) 45% 56%, var(--bds-navy) 56%);
}

@media (max-width: 991px) {
  .tp-header-area { padding: 10px 0; }
  .tp-section-title-grotesk, .faq-title, .journey-heading h2 { font-size: clamp(34px, 7vw, 48px) !important; }
}

@media (max-width: 767px) {
  .tp-header-area { margin-top: 0 !important; }
  .contact-card { width: 240px; }
  .tp-section-title-grotesk::before, .faq-title::before { margin-bottom: 12px; }
}

/* Failed optional images must never leave permanent loading indicators. */
.spinner-overlay { transition: opacity .2s ease, visibility .2s ease; }
.spinner-overlay.hidden { opacity: 0 !important; visibility: hidden !important; }
img.lazy-img.load-failed { opacity: 0 !important; }

/* About page contact CTA */
.about-contact-cta {
  position: relative;
  overflow: hidden;
  padding: 82px 0;
  color: #fff;
  background:
    radial-gradient(circle at 82% 20%, rgba(211,166,74,.18), transparent 30%),
    linear-gradient(120deg, var(--bds-ink), #123b59);
}

.about-contact-cta::after {
  content: "";
  position: absolute;
  right: -90px;
  bottom: -180px;
  width: 390px;
  height: 390px;
  border: 1px solid rgba(255,255,255,.12);
  border-radius: 50%;
  box-shadow: 0 0 0 45px rgba(255,255,255,.035), 0 0 0 90px rgba(255,255,255,.02);
}

.about-contact-cta .container { position: relative; z-index: 1; }
.about-contact-kicker {
  display: inline-block;
  margin-bottom: 15px;
  color: var(--bds-gold);
  font-size: 13px;
  font-weight: 800;
  letter-spacing: .16em;
  text-transform: uppercase;
}

.about-contact-copy h2 {
  max-width: 540px;
  margin-bottom: 20px;
  color: #fff;
  font-family: Georgia, "Times New Roman", serif;
  font-size: clamp(38px, 4.2vw, 60px);
  line-height: 1.02;
}

.about-contact-copy p {
  max-width: 510px;
  margin-bottom: 26px;
  color: rgba(255,255,255,.78);
  font-size: 17px;
}

.about-contact-points { display: flex; flex-wrap: wrap; gap: 9px; }
.about-contact-points span {
  padding: 7px 12px;
  border: 1px solid rgba(255,255,255,.18);
  border-radius: 999px;
  color: rgba(255,255,255,.88);
  font-size: 12px;
  font-weight: 700;
}

.about-contact-card {
  padding: 34px;
  border: 1px solid rgba(255,255,255,.55);
  border-radius: 7px 30px 7px 30px;
  background: rgba(255,253,249,.97);
  box-shadow: 0 26px 60px rgba(0,0,0,.22);
}

.about-contact-card label {
  display: block;
  margin-bottom: 8px;
  color: var(--bds-ink);
  font-size: 13px;
  font-weight: 800;
}

.about-contact-card input { height: 58px; }
.about-contact-submit {
  width: 100%;
  min-height: 58px;
  margin-top: 4px;
  border-radius: 4px 16px 4px 16px;
  color: #fff;
  background: var(--bds-red);
  font-size: 16px;
  font-weight: 800;
  box-shadow: 0 12px 25px rgba(180,35,54,.2);
}
.about-contact-submit span { margin-left: 8px; }
.about-contact-submit:hover { color: #fff; background: var(--bds-ink); transform: translateY(-2px); }

@media (max-width: 991px) {
  .about-contact-cta { padding: 64px 0; }
  .about-contact-copy { text-align: center; }
  .about-contact-copy h2, .about-contact-copy p { margin-right: auto; margin-left: auto; }
  .about-contact-points { justify-content: center; }
}

@media (max-width: 575px) {
  .about-contact-card { padding: 24px 18px; }
}

/* Responsive hardening shared by every page. */
html,
body {
  width: 100%;
  max-width: 100%;
  overflow-x: clip;
}

.cs-offcanvas {
  display: none;
  top: 0;
  right: 0;
  bottom: 0;
  height: 100vh !important;
  height: 100dvh !important;
  min-height: 100vh;
  max-width: calc(100vw - 24px);
  visibility: hidden;
  transform: translateX(100%);
  transition: transform .3s ease, visibility .3s ease;
}

.cs-offcanvas.cs-active {
  display: block;
  visibility: visible;
  transform: translateX(0);
}

img,
video,
iframe,
svg {
  max-width: 100%;
}

img,
video {
  height: auto;
}

.row > *,
[class*="col-"] {
  min-width: 0;
}

.blog-article,
.blog-article-content,
.blog-article-content p,
.blog-article-content li,
.blog-article-content a,
.blog-article-content h1,
.blog-article-content h2,
.blog-article-content h3,
.blog-article-content h4 {
  max-width: 100%;
  overflow-wrap: anywhere;
  word-break: normal;
}

.blog-article-content table {
  display: block;
  width: 100%;
  max-width: 100%;
  overflow-x: auto;
  -webkit-overflow-scrolling: touch;
}

@media (max-width: 767px) {
  .container,
  .container-fluid,
  [class*="container-"] {
    max-width: 100%;
  }

  h1 { font-size: clamp(32px, 10vw, 48px); }
  h2 { font-size: clamp(27px, 8vw, 38px); }
  h3 { font-size: clamp(22px, 6vw, 30px); }

  .tp-header-area {
    padding-right: 0;
    padding-left: 0;
  }

  .tp-header-logo img,
  .cs-offcanvas img.logo-white {
    width: min(160px, 46vw) !important;
  }

  .bds-hero-books {
    width: 100% !important;
    max-width: 100% !important;
    transform: none !important;
  }

  .tp-btn-gradient,
  .tp-btn-gradient-1,
  .tp-btn-black-radius {
    max-width: 100%;
    white-space: normal;
  }

  .blog-article-content {
    padding-right: 0;
    padding-left: 0;
  }

  .blog-article-content pre,
  .blog-article-content code {
    max-width: 100%;
    overflow-x: auto;
    white-space: pre-wrap;
  }

  .crp-footer-widget,
  .tp-copyright-left,
  .tp-copyright-right {
    text-align: center !important;
  }
}

@supports not (overflow: clip) {
  html,
  body { overflow-x: hidden; }
}
