/*
  Theme Name: Zaira - News Magazine HTML Template
  Support: themegenix@gmail.com
  Description: Zaira - News Magazine HTML Template.
  Version: 1.0
*/

/* CSS Index
============================
01. Variable CSS
02. Header
03. Banner Post
04. Breadcrumb
05. About
06. Post Meta
07. Sidebar
08. Categories
09. Weekly Post
10. Blog Details
11. Pagination
12. Contact
13. Footer
14. Accordion
15. Mode Trigger
16. Dark CSS
17. Material Design Icon Styling
18. Button style
19. Scroll up
20. Table styling
21. Sponsor banner
22. FAQ views exposed filter
23. Author social
24. Heading numbering
25. Prepend / Append styling
26. Event calendar styling
27. Flippy styling
28. Figure caption styling
29. Alert styling
30. RSVP button styling
31. Glossary page
32. Klaro cookie consent
33. Social sharing buttons
34. Logos grid
35. Books in sidebar styling
36. Shop product page
37. Mark outbound links with an icon
38. Blog post meta — author byline + co-authors
39. Sticky social share rail
40. Post-meta overflow popover
41. Global search — nav icon + overlay
42. Search results page
43. Body content tables (Bootstrap Barrio override)
44. Weekly-post-four — responsive card layout
45. Categories mobile overflow fix
46. Mobile nav — hamburger + icon row
47. Shop styles (product listing, cart, checkout)
48. Podcast styles
49. Downloader nav item
50. Downloads page
51. FAQ accordion — brand palette
52. Main → Footer breathing room
53. Account icon dropdown (nav bar)
54. User profile page
55. Inline quiz — teaser card, overlay, questions, results, newsletter nudge
56. Flag bookmark — post-meta icon + profile bookmarks
57. User edit form — label visibility
58. Page loader
59. Utility classes (margin, padding, color)
============================
*/

/*=============================
	1. Google Fonts
===============================*/
@import url("https://fonts.googleapis.com/css2?family=Inter:wght@300;400;500;600;700&family=Playfair+Display:ital,wght@0,400;0,600;0,700;1,400&display=swap");

/*=============================
	01. Variable CSS
===============================*/
:root {
  --tg-body-font-family: "Inter", sans-serif;
  --tg-heading-font-family: "Inter", sans-serif;
  --tg-primary-color: #c09a52;
  --tg-secondary-color: #0d1b2a;
  --tg-body-font-color: #3d4a56;
  --tg-heading-font-color: #0d1b2a;
  --tg-paragraph-color: #3d4a56;
  --tg-icon-color: #6b788a;
  --tg-border-color: #e2ddd7;
  --tg-border-dark: #273341;
  --tg-body-font-size: 16px;
  --tg-menu-item-font-size: 14px;
  --tg-body-font-weight: 300;
  --tg-heading-font-weight: 500;
  --tg-body-line-height: 1.75;
  --tg-heading-line-height: 1.2;
  --tg-blue: #0d6efd;
  --tg-indigo: #6610f2;
  --tg-purple: #6f42c1;
  --tg-pink: #d63384;
  --tg-red: #dc3545;
  --tg-orange: #fd7e14;
  --tg-yellow: #ffc107;
  --tg-green: #198754;
  --tg-teal: #ede8e0;
  --tg-cyan: #0dcaf0;
  --tg-white: #ffffff;
  --tg-black: #0d1b2a;
  --tg-black-two: #000000;
  --tg-gray: #d9d9d9;
  --tg-gray-two: #bacce1;
  --tg-gray-three: #f7f5f2;
  --tg-accent2-color: #1e6b9a;
  --facebook: #104e87;
  --twitter: #2eb4ff;
  --linkedin: #0c7ed0;
  --instagram: #ff2f7a;
  --pinterest: #e13138;
  --dribbble: #f7659c;
  --google: #eb5e4c;
  --youtube: #c4302b;
  --vimeo: #35c6ea;
  --rss: #ff6d00;
  --patreon: #f96854;
  --skype: #00aff0;
  --background-color: #f7f5f2;
}
[data-bs-theme="dark"] {
  --background-color: #0a1520;
}

html {
  scroll-behavior: smooth;
  /* scroll-padding-top accounts for the sticky nav (~80px) when the browser
     scrolls to an anchor target via a # URL or scrollIntoView(). This backs
     up the toc_js module's own scroll_to_offset setting. */
  scroll-padding-top: 90px;
}

body {
  font-family: var(--tg-body-font-family);
  font-weight: var(--tg-body-font-weight);
  font-size: var(--tg-body-font-size);
  line-height: var(--tg-body-line-height);
  color: var(--tg-body-font-color);
  font-style: normal;
  background-color: var(--background-color);
}
img,
.img {
  max-width: 100%;
  -webkit-transition: -webkit-transform 1s ease;
  transition: -webkit-transform 1s ease;
  transition: transform 1s ease;
  transition:
    transform 1s ease,
    -webkit-transform 1s ease;
}
.f-left {
  float: left;
}
.f-right {
  float: right;
}
.fix {
  overflow: hidden;
}
a,
button {
  -webkit-transition: all 0.3s ease-out 0s;
  -moz-transition: all 0.3s ease-out 0s;
  -ms-transition: all 0.3s ease-out 0s;
  -o-transition: all 0.3s ease-out 0s;
  transition: all 0.3s ease-out 0s;
  text-decoration: none;
}
a:focus,
.btn:focus,
button:focus {
  text-decoration: none;
  outline: none;
  box-shadow: none;
}
a:hover,
.portfolio-cat a:hover,
.footer -menu li a:hover {
  color: var(--tg-primary-color);
  text-decoration: none;
}
a,
button {
  color: var(--tg-primary-color);
  outline: medium none;
  text-decoration: none;
}
.btn:focus,
button:focus,
input:focus,
input:focus,
textarea,
textarea:focus {
  outline: 0;
}
.uppercase {
  text-transform: uppercase;
}
.capitalize {
  text-transform: capitalize;
}
h1,
h2,
h3,
h4,
h5,
h6 {
  font-family: var(--tg-heading-font-family);
  color: var(--tg-heading-font-color);
  margin-top: 0px;
  margin-bottom: 0.7rem;
  font-style: normal;
  line-height: var(--tg-heading-line-height);
  font-weight: var(--tg-heading-font-weight);
  text-transform: capitalize;
}
h1 a,
h2 a,
h3 a,
h4 a,
h5 a,
h6 a {
  color: inherit;
}
h1 {
  font-size: 2rem;
  font-family: "Noto Serif", Georgia, serif;
}
h2 {
  font-size: 1.5rem;
  font-family: "Noto Serif", Georgia, serif;
}
h3 {
  font-size: 1.25rem;
}
h4 {
  font-size: 1rem;
}
h5 {
  font-size: 0.8rem;
}
h6 {
  font-size: 1rem;
}
.list-wrap {
  margin: 0px;
  padding: 0px;
}
.list-wrap li {
  list-style: none;
}
p {
  font-size: var(--tg-body-font-size);
  font-weight: var(--tg-body-font-weight);
  line-height: var(--tg-body-line-height);
  color: var(--tg-paragraph-color);
  text-transform: capitalize;
  margin-bottom: 15px;
}
hr {
  border-bottom: 1px solid var(--tg-primary-color);
  border-top: 0 none;
  margin: 30px 0;
  padding: 0;
}
label {
  color: var(--tg-body-font-color);
  cursor: pointer;
  font-size: 16px;
  font-weight: 400;
}
*::-moz-selection {
  background: var(--tg-primary-color);
  color: var(--tg-white);
  text-shadow: none;
}
::-moz-selection {
  background: var(--tg-primary-color);
  color: var(--tg-white);
  text-shadow: none;
}
::selection {
  background: var(--tg-primary-color);
  color: var(--tg-white);
  text-shadow: none;
}
*::-moz-placeholder {
  color: var(--tg-body-font-color);
  font-size: var(--tg-body-font-size);
  opacity: 1;
}
*::placeholder {
  color: var(--tg-body-font-color);
  font-size: var(--tg-body-font-size);
  opacity: 1;
}
.theme-overlay {
  position: relative;
}
.theme-overlay::before {
  background: var(--tg-primary-color) none repeat scroll 0 0;
  content: "";
  height: 100%;
  left: 0;
  opacity: 0.6;
  position: absolute;
  top: 0;
  width: 100%;
}
.separator {
  border-top: 1px solid var(--tg-primary-color);
}
/* Bootstrap 5 */
.container {
  padding-left: 15px;
  padding-right: 15px;
}
.row {
  --bs-gutter-x: 30px;
}
.row.g-0 {
  --bs-gutter-x: 0;
}
.gutter-y-30 {
  --bs-gutter-y: 30px;
}
.gutter-40 {
  --bs-gutter-x: 40px;
}
.form-control {
  display: block;
  width: 100%;
  padding: 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--tg-black);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--tg-white);
  background-clip: padding-box;
  border: var(--bs-border-width) solid var(--tg-border-color);
  border-radius: var(--bs-border-radius);
  transition:
    border-color 0.15s ease-in-out,
    box-shadow 0.15s ease-in-out;
}
/*=============================
	02. Header
===============================*/
#header-fixed-height.active-height {
  display: block;
  height: 95px;
}
.header-top-wrap {
  background: var(--tg-secondary-color);
  padding: 6px 35px;
}
.header-top-menu .list-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 20px;
}
.header-top-menu .list-wrap li a {
  color: var(--tg-white);
  font-family: var(--tg-heading-font-family);
  font-size: 13px;
  font-weight: 700;
  line-height: normal;
  text-transform: capitalize;
}
.header-top-menu .list-wrap li a:hover {
  color: var(--tg-primary-color);
}
.header-top-social {
  display: flex;
  align-items: center;
  justify-content: flex-end;
}
.header-top-social .title {
  margin-bottom: 0;
  color: var(--tg-white);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: 1.3px;
  text-transform: uppercase;
  margin-right: 6px;
  line-height: 1;
}
.header-top-social .list-wrap {
  display: flex;
  align-items: center;
  gap: 14px;
}
.header-top-social .list-wrap li a {
  font-size: 14px;
  color: var(--tg-white);
}
.header-top-social .list-wrap li a:hover {
  color: var(--tg-primary-color);
}
.menu-area {
  border-bottom: 1px solid var(--tg-gray);
}
.menu-nav {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: space-between;
  padding: 20px 0;
}
.logo img {
  max-height: 50px;
}
/* Search bar */
.header-search-wrap form.search-form {
  width: 100%;
}
.header-search-wrap form.search-form .js-form-item,
.header-search-wrap form.search-form .js-form-wrapper {
  margin: 0 !important;
}
.header-search-wrap form.search-form .form-actions {
  position: absolute;
  right: 15px;
  top: 50%;
  background: none;
  border: none;
  padding: 0;
  font-size: 20px;
  line-height: 0;
  color: var(--tg-secondary-color);
}
.header-search-wrap form.search-form .form-actions input.form-submit {
  text-indent: 100px;
  width: 30px;
  overflow: hidden;
  display: none;
}
.header-search-wrap form.search-form .form-actions input.form-submit:hover {
  background: none;
  color: var(--tg-primary-color);
}

@media (max-width: 992px) {
  .header-search-wrap form#search-block-form {
    display: none;
  }
}

/* Legacy .navbar-wrap .sub-menu dropdown rules removed.
   Main navigation is now rendered exclusively by TB Megamenu.
   Dropdown styles live in TB Megamenu's own CSS and mobile-menu.css. */
.sticky-menu {
  position: fixed;
  left: 0;
  margin: auto;
  top: 0;
  width: 100%;
  z-index: 99;
  background: var(--tg-white);
  -webkit-animation: 1000ms ease-in-out 0s normal none 1 running fadeInDown;
  animation: 1000ms ease-in-out 0s normal none 1 running fadeInDown;
  -webkit-box-shadow: 0 10px 15px rgba(25, 25, 25, 0.1);
  box-shadow: 0 10px 15px rgba(25, 25, 25, 0.1);
  border-radius: 0;
}

/* header-three */
.header-top-wrap-two {
  background: var(--tg-secondary-color);
  padding: 10px 0;
}
.header-top-left-two .list-wrap {
  display: flex;
  align-items: center;
  gap: 20px;
}
.header-top-left-two .list-wrap li a {
  color: var(--tg-white);
  font-size: 14px;
}
.header-top-left-two .list-wrap li a:hover {
  color: var(--tg-primary-color);
}

.trending-box {
  display: flex;
  align-items: center;
  gap: 7px;
  padding: 4px 30px 4px 5px;
  position: relative;
  z-index: 1;
}
.trending-box .shape {
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.trending-box .shape svg {
  overflow: visible;
  width: 100%;
  height: 100%;
}
.trending-box .icon {
  width: 28px;
  height: 28px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 50%;
  background: var(--tg-primary-color);
}
.trending-box span {
  font-size: 13px;
  font-weight: 600;
  color: var(--tg-white);
}
.ta-trending-slider {
  height: 40px;
  margin: 0;
}
.ta-trending-slider .swiper-slide {
  display: flex;
  align-items: center;
}
.trending-content a {
  color: #c7d2e0;
  font-size: 14px;
}
.trending-content a:hover {
  color: var(--tg-white);
}
/*=============================
	03. Banner Post
===============================*/
.banner-post-thumb-five {
  overflow: hidden;
  margin-bottom: 12px;
  position: relative;
  border: 1px solid var(--tg-border-color);
  border-radius: 6px;
}
.banner-post-thumb-five img {
  width: 100%;
  height: 180px;
  object-fit: cover;
}
.banner-post-five:hover .banner-post-thumb-five img {
  transform: scale(1.1);
}
.post-tag-four {
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  display: block;
  line-height: 1.4;
  color: var(--tg-icon-color);
  margin-bottom: 12px;
}
.banner-post-content-five .post-title {
  font-size: 18px;
  margin-bottom: 10px;
  line-height: 1.4;
}
.banner-post-five:hover .banner-post-content-five .post-title a {
  background-size: 100% 1px;
}
.banner-post-content-five .blog-post-meta .list-wrap {
  justify-content: flex-start;
}
.banner-post-seven .banner-post-thumb-five img {
  height: 200px;
  width: 100%;
  object-fit: cover;
}
.banner-post-seven .banner-post-thumb-five .paly-btn {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 50px;
  height: 50px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tg-white);
  border-radius: 50%;
  font-size: 18px;
}
.banner-post-seven .banner-post-thumb-five .paly-btn:hover {
  background: var(--tg-primary-color);
  color: var(--tg-white);
}
.banner-post-seven {
  position: relative;
}
.banner-post-seven::before {
  content: "";
  position: absolute;
  top: 0px;
  right: -20px;
  width: 1px;
  height: 100%;
}

/*=============================
	04. Breadcrumb
===============================*/
.breadcrumb-area {
  background: var(--tg-gray-three);
  padding: 30px 0;
}

/* When an RSS subscribe button is present, align nav left + button right */
.breadcrumb-content--has-rss {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 16px;
}

.breadcrumb-content--has-rss .breadcrumb {
  margin-bottom: 0;
}

/* Subscribe button — icon only, standard RSS orange */
.breadcrumb-rss-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  padding: 4px;
  background: transparent;
  color: var(--rss); /* #ff6d00 */
  text-decoration: none;
  border-radius: 4px;
  flex-shrink: 0;
  transition: opacity 0.2s ease;
}

.breadcrumb-rss-btn:hover {
  opacity: 0.75;
  color: var(--rss);
}

.breadcrumb-rss-btn .material-symbols-sharp {
  font-size: 22px;
  line-height: 1;
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

/* Mobile: keep RSS icon and breadcrumb on one line, just tighten the gap */
@media (max-width: 575.98px) {
  .breadcrumb-content--has-rss {
    gap: 10px;
  }
}

.breadcrumb-content .breadcrumb {
  margin-bottom: 0;
}
.breadcrumb-content .breadcrumb-item {
  font-size: 15px;
  font-weight: 500;
  font-family: var(--tg-heading-font-family);
  color: var(--tg-icon-color);
}
.breadcrumb-content .breadcrumb-item a {
  color: var(--tg-icon-color);
}
.breadcrumb-content .breadcrumb-item a:hover {
  color: var(--tg-primary-color);
}
.breadcrumb-content .breadcrumb-item.active {
  color: var(--tg-primary-color);
}
.breadcrumb-content .breadcrumb-item + .breadcrumb-item::before {
  float: left;
  padding-right: 8px;
  color: var(--tg-icon-color);
  content: "\e5cc";
  font-family: "Material Symbols Sharp";
  font-size: 16px;
}
.breadcrumb-content .breadcrumb-item + .breadcrumb-item {
  padding-left: 8px;
}

/*=============================
	05. About
===============================*/
.about-img {
  position: relative;
  display: flex;
  align-items: center;
  gap: 20px;
}
.about-img .left-img {
  display: flex;
  flex-direction: column;
  gap: 20px;
}
.about-img img {
  border-radius: 8px;
}
.about-img img.shape {
  position: absolute;
  left: -7%;
  bottom: -6%;
  z-index: -1;
  border-radius: 0;
}
.about-content {
  width: 92%;
}
.section-title-five .sub-title {
  display: block;
  line-height: 1;
  color: var(--tg-primary-color);
  font-weight: 700;
  font-family: var(--tg-heading-font-family);
  margin-bottom: 15px;
}
.section-title-five .title {
  margin-bottom: 10px;
  font-size: 28px;
  font-weight: 800;
}
.about-content > span {
  font-size: 18px;
  font-weight: 700;
  display: block;
  color: var(--tg-secondary-color);
  font-family: var(--tg-heading-font-family);
  line-height: 1.4;
  text-transform: capitalize;
  margin-bottom: 18px;
}
.about-content p {
  margin-bottom: 25px;
}
.about-content .view-all-btn .btn {
  border: none;
  background: var(--tg-primary-color);
  color: var(--tg-secondary-color);
  font-weight: 600;
  padding: 16px 20px;
}
.about-content .view-all-btn .btn::before {
  background: var(--tg-secondary-color);
}
.about-content .view-all-btn .btn:hover {
  background: var(--tg-primary-color);
}
.about-content .view-all-btn .link-btn .svg-icon svg {
  color: var(--tg-white);
}

/*=============================
	06. Post Meta
===============================*/
.post-tag {
  color: var(--tg-white);
  font-family: var(--tg-heading-font-family);
  font-size: 13px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 0.78px;
  text-transform: uppercase;
  background: var(--tg-primary-color);
  display: inline-block;
  border-radius: 3px;
  padding: 4px 10px;
  margin-bottom: 15px;
}
.post-tag:hover {
  color: var(--tg-white);
  background: var(--tg-secondary-color);
}
.post-title a:hover {
  color: var(--tg-secondary-color);
}
.post-title a {
  color: inherit;
  display: inline;
  padding-bottom: 0;
  -webkit-transition: background-size 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
  transition: background-size 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
  background-image: -webkit-gradient(
    linear,
    left top,
    left bottom,
    from(currentColor),
    color-stop(98%, currentColor)
  );
  background-image: linear-gradient(
    to bottom,
    currentColor 0%,
    currentColor 98%
  );
  background-size: 0 1px;
  background-repeat: no-repeat;
  background-position: left 100%;
}
.blog-post-meta .list-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 15px;
}
.blog-post-meta .list-wrap li {
  display: flex;
  align-items: center;
  color: var(--tg-icon-color);
  font-size: 11px;
  font-weight: normal;
  line-height: normal;
  letter-spacing: 0.52px;
  text-transform: uppercase;
  gap: 5px;
}
.blog-post-meta .list-wrap li i {
  line-height: 0;
  font-size: 16px;
}
.blog-post-meta .list-wrap li a {
  color: var(--tg-icon-color);
}
.blog-post-meta .list-wrap li a:hover {
  color: var(--tg-primary-color);
}

/*=============================
	07. Sidebar
===============================*/
.section-title-wrap {
  display: flex;
  align-items: center;
  gap: 30px;
  justify-content: space-between;
  position: relative;
  padding-bottom: 20px;
}
.section-title .title {
  margin-bottom: 0;
  font-size: 28px;
}
.section-title-line {
  width: 100%;
  height: 5px;
  position: absolute;
  left: 0;
  bottom: 0;
  border: 1px solid var(--tg-border-color);
  border-left: none;
  border-right: none;
}
.section-title-line::before {
  content: "";
  position: absolute;
  left: 0;
  top: -1px;
  width: 40px;
  height: 5px;
  background: var(--tg-primary-color);
}
.section-title-line::after {
  content: "";
  position: absolute;
  left: 36px;
  top: -1.5px;
  width: 10px;
  height: 6px;
  background: var(--tg-white);
  clip-path: polygon(40% 0, 100% 0%, 60% 100%, 0 100%);
}
.sidebar-wrap {
  margin-left: 40px;
  position: sticky;
  top: 100px;
}
.sidebar-wrap.sidebar-wrap-two {
  top: 70px;
}
.sidebar-avatar {
  text-align: center;
  position: relative;
  background: var(--tg-gray-three);
  padding: 100px 30px 45px;
  margin-top: 100px;
  z-index: 1;
}
.sidebar-avatar::before {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 6px;
  background: var(--tg-primary-color);
}
.sidebar-avatar-thumb {
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  top: 0;
  width: 180px;
  margin-top: -100px;
}
.sidebar-avatar-thumb img {
  border-radius: 50%;
}
.sidebar-avatar-content .title {
  font-size: 24px;
  font-weight: 800;
  margin-bottom: 12px;
}
.sidebar-avatar-content p {
  margin-bottom: 20px;
}
.avatar-social .list-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
}
.avatar-social .list-wrap li a {
  width: 40px;
  height: 40px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tg-primary-color);
  color: var(--tg-white);
  border-radius: 50%;
  font-size: 15px;
}
.avatar-social .list-wrap li a:hover {
  background: var(--tg-secondary-color);
}
.sidebar-avatar-shape img {
  position: absolute;
  z-index: -1;
}
.sidebar-avatar-shape img:nth-child(1) {
  right: 0;
  top: 0;
}
.sidebar-avatar-shape img:nth-child(2) {
  left: 0;
  bottom: 0;
}
.sidebar-widget {
  margin-bottom: 25px;
}
.sidebar-widget:last-child {
  margin-bottom: 0;
}
.widget-title {
  position: relative;
  padding-bottom: 20px;
}
.widget-title .title {
  margin-bottom: 0;
  font-size: 22px;
}
.sidebar-social-wrap .list-wrap {
  display: flex;
  align-items: center;
  width: 100%;
  gap: 8px;
  flex-wrap: nowrap;
}
.sidebar-social-wrap .list-wrap li {
  flex: 1;
  list-style: none;
}
.sidebar-social-wrap .list-wrap li a {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 100%;
  background: var(--tg-teal);
  font-size: 14px;
  font-weight: 500;
  text-transform: capitalize;
  color: var(--tg-secondary-color);
  border-radius: 4px;
  padding: 10px;
  min-width: 24px;
}
/* latest-post-two */
.sidebar-avatar-two {
  background: var(--tg-gray-three);
  border-radius: 6px;
  padding: 25px 40px 40px;
  text-align: center;
}
.sidebar-avatar-two .sidebar-avatar-thumb {
  position: inherit;
  width: 170px;
  margin-top: 0;
  transform: translateX(0);
  border: 5px solid var(--tg-white);
  border-radius: 50%;
  margin: 0 auto 20px;
  filter: drop-shadow(0px 4px 12px rgba(0, 0, 0, 0.08));
}
.sidebar-avatar-two .sidebar-avatar-content p {
  margin-bottom: 20px;
  color: #6b788a;
  line-height: 1.5;
}
.sidebar-avatar-two .avatar-social .list-wrap li a {
  width: 50px;
  height: 50px;
  background: var(--tg-white);
  color: var(--tg-secondary-color);
  border-radius: 50%;
  font-size: 20px;
  border: 1px solid #d0d0d0;
}
.sidebar-avatar-two .avatar-social .list-wrap li a:hover {
  background: var(--tg-primary-color);
  border-color: var(--tg-primary-color);
  color: var(--tg-white);
}
.sidebar-social-wrap.sidebar-social-two .list-wrap li a {
  background: #f0f0f0;
}
.sidebar-social-wrap.sidebar-social-two .list-wrap li a:hover {
  background: var(--tg-primary-color);
}

.view-all-btn .link-btn {
  display: inline-flex;
  align-items: center;
  line-height: 1;
  font-size: 14px;
  font-weight: 500;
  text-transform: uppercase;
  position: relative;
  border-radius: 4px;
  border: 1px solid var(--tg-border-color);
  padding: 10px 17px;
  color: var(--tg-secondary-color);
  gap: 10px;
  --arrow-hover-move-x: 110%;
  --arrow-hover-move-y: 100%;
}
.view-all-btn .link-btn:hover {
  border-color: var(--tg-secondary-color);
  color: var(--tg-white);
  background: var(--tg-secondary-color);
}
/*=============================
	08. Categories
===============================*/
.categories-area {
  background: var(--tg-teal);
  position: relative;
  padding: 70px 0;
  z-index: 1;
  overflow: hidden;
}
.categories-shape-wrap img {
  position: absolute;
  z-index: -1;
}
.categories-shape-wrap img:nth-child(1) {
  right: 0;
  top: 0;
}
.categories-shape-wrap img:nth-child(2) {
  left: 0;
  bottom: 0;
}
.section-title-two.text-center .title {
  position: relative;
  padding-bottom: 22px;
  margin-bottom: 15px;
}
.section-title-two.text-center .title::before {
  content: "";
  position: absolute;
  left: 50%;
  transform: translateX(-50%);
  bottom: 0;
  width: 32px;
  height: 5px;
  background: var(--tg-primary-color);
  clip-path: polygon(0 0, 100% 0, 90% 100%, 10% 100%);
}
.section-title p {
  width: 90%;
  margin: 0 auto;
}
.categories-item {
  border: 3px solid var(--tg-black);
  border-radius: 4px;
  position: relative;
  width: 190px;
  margin: 0 auto 30px;
}
.categories-img {
  position: relative;
  border-radius: 0;
  overflow: hidden;
}
.categories-img::after {
  content: "";
  position: absolute;
  inset: 0;
  background: var(--tg-primary-color);
  opacity: 0;
  pointer-events: none;
  transition: opacity 0.3s ease;
}
.categories-item:hover .categories-img::after {
  opacity: 0.35;
}
.categories-item:hover .categories-img img {
  transform: scale(1.05);
}
.categories-content {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
}
.categories-content a {
  display: block;
  font-size: 13px;
  font-weight: 600;
  letter-spacing: 0.78px;
  text-transform: uppercase;
  color: var(--tg-white);
  background: var(--tg-primary-color);
  border-radius: 3px;
  padding: 6px 10px;
  line-height: 1;
}
/* categories-two */
.section-title-wrap-three {
  display: flex;
  align-items: center;
  position: relative;
  gap: 15px;
}
.section-title-wrap-three.text-center {
  justify-content: center;
}
.section-title-svg {
  position: absolute;
  left: 0;
  top: 50%;
  width: 100%;
  height: 100%;
  z-index: -1;
}
.section-title-svg svg {
  width: 100%;
  height: 100%;
  color: var(--tg-primary-color);
}
.categories-item-wrap-two .row {
  --bs-gutter-x: 42px;
  justify-content: center;
}
.categories-item-two {
  position: relative;
  margin-bottom: 30px;
}
.categories-img-two {
  position: relative;
  overflow: hidden;
  border-radius: 50px;
}
.categories-img-two img {
  height: 180px;
  object-fit: cover;
  width: 100%;
}
.categories-item-two:hover .categories-img-two img {
  transform: scale(1.1);
}
.categories-img-two::after {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(
    0deg,
    rgba(0, 0, 0, 0.9) 0%,
    rgba(0, 0, 0, 0.2) 100%
  );
  pointer-events: none;
}
.categories-content-two {
  text-align: center;
  position: absolute;
  bottom: 40px;
  left: 50%;
  transform: translateX(-50%);
}
.categories-content-two a {
  margin-bottom: 0;
  background: rgba(255, 255, 255, 0.3);
}
.categories-item-two:hover .categories-content-two a {
  background: var(--tg-primary-color);
}

/*=============================
	09. Weekly Post
===============================*/
.weekly-post-inner-wrap .row .col-70 {
  width: 69.7%;
  flex: 0 0 auto;
}
.weekly-post-inner-wrap .row .col-30 {
  width: 30.3%;
  flex: 0 0 auto;
}
.weekly-post-item {
  display: flex;
  gap: 40px;
  margin-bottom: 20px;
}
.weekly-post-thumb {
  width: 440px;
  flex: 0 0 auto;
  overflow: hidden;
  border-radius: 6px;
  border: 1px solid var(--tg-border-color);
}
.weekly-post-thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.weekly-post-item:hover .weekly-post-thumb img {
  transform: scale(1.1);
}
.weekly-post-content {
  display: flex;
  flex-direction: column;
  justify-content: center;
  align-items: flex-start;
}
.weekly-post-content .post-title {
  font-size: 20px;
  margin-bottom: 15px;
  line-height: 1.4;
}
.weekly-post-item:hover .weekly-post-content .post-title a {
  background-size: 100% 1px;
}
.weekly-post-content .blog-post-meta {
  margin-bottom: 15px;
}
.weekly-post-content p {
  margin-bottom: 20px;
}
.weekly-post-content .view-all-btn .link-btn {
  font-weight: 600;
}
.hot-post-item {
  margin-bottom: 20px;
}
.hot-post-item:last-child {
  margin-bottom: 0;
}
.hot-post-thumb {
  overflow: hidden;
  border-radius: 5px;
  margin-bottom: 20px;
}
.hot-post-thumb img {
  height: 220px;
  object-fit: cover;
  width: 100%;
}
.hot-post-item:hover .hot-post-thumb img {
  transform: scale(1.1);
}
.hot-post-content .post-title {
  margin-bottom: 15px;
  font-size: 20px;
  line-height: 1.3;
}
.hot-post-item:hover .hot-post-content .post-title a {
  background-size: 100% 1px;
}
.hot-post-content .blog-post-meta .list-wrap {
  justify-content: flex-start;
}
.sidebar-img img {
  border-radius: 5px;
}
.weekly-post-item.weekly-post-two {
  flex-direction: row-reverse;
  margin-bottom: 30px;
}
.sidebar-overlay-post {
  position: relative;
  margin-bottom: 25px;
}
.so-post-thumb {
  position: relative;
  border-radius: 5px;
  overflow: hidden;
}
.so-post-thumb::after {
  content: "";
  position: absolute;
  left: 0;
  top: 0;
  width: 100%;
  height: 100%;
  background: linear-gradient(0deg, #000 0%, rgba(0, 0, 0, 0) 100%);
  pointer-events: none;
}
.so-post-thumb img {
  width: 100%;
  height: 364px;
  object-fit: cover;
}
.sidebar-overlay-post:hover .so-post-thumb img {
  transform: scale(1.1);
}
.so-post-content {
  position: absolute;
  left: 30px;
  bottom: 30px;
  right: 25px;
}
.so-post-content .post-title {
  color: var(--tg-white);
  font-size: 20px;
  line-height: 1.4;
}
.so-post-content .post-title a:hover {
  color: var(--tg-white);
}
.sidebar-overlay-post:hover .so-post-content .post-title a {
  background-size: 100% 1px;
}
.so-post-content .blog-post-meta .list-wrap {
  justify-content: flex-start;
}
.weekly-post-three {
  margin-bottom: 30px;
}
.weekly-post-three .weekly-post-thumb {
  position: relative;
  margin-bottom: 15px;
  width: 100%;
}
.weekly-post-three .weekly-post-thumb .post-tag {
  position: absolute;
  left: 30px;
  top: 30px;
}
.weekly-post-three .weekly-post-thumb img {
  width: 100%;
  height: 300px;
  object-fit: cover;
}
.weekly-post-three:hover .weekly-post-thumb img {
  transform: scale(1.1);
}
.weekly-post-three:hover .weekly-post-content .post-title a {
  background-size: 100% 1px;
}
.weekly-post-three .weekly-post-content p {
  margin-bottom: 0;
}
.sidebar-newsletter-form-two .form-grp input {
  width: 100%;
  border: none;
  border-radius: 5px;
  background: var(--tg-white);
  text-align: center;
  font-size: 14px;
  padding: 13px 20px;
  color: var(--tg-secondary-color);
  height: 50px;
}
.sidebar-newsletter-form-two .form-grp input::placeholder {
  font-size: 14px;
  color: #6b788a;
}
.sidebar-newsletter-form-two .btn {
  width: 100%;
  background: var(--tg-primary-color);
  justify-content: center;
  text-transform: uppercase;
  margin-top: 15px;
}
.sidebar-newsletter-form-two .btn::before {
  background: var(--tg-white);
}
.sidebar-newsletter-form-two .btn:hover {
  color: var(--tg-primary-color);
}
.form-check {
  display: flex;
  align-items: center;
  margin: 0;
  padding: 0;
  margin-top: 20px;
}
.form-check .form-check-input {
  border-radius: 3px;
  border: 1px solid rgba(192, 154, 82, 0.4);
  margin: 0 8px 0 0;
  width: 18px;
  height: 18px;
  flex: 0 0 18px;
  background-color: var(--tg-secondary-color);
  cursor: pointer;
}
.form-check .form-check-input:focus {
  outline: 0;
  box-shadow: none;
}
.form-check label {
  text-align: left;
  font-size: 14px;
  color: #6b788a;
  user-select: none;
}
.weekly-post-item.weekly-post-four {
  margin-bottom: 40px;
}
/*=============================
	10. Blog Details
===============================*/
.bd-content-inner {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 30px;
  flex-wrap: wrap;
  margin-bottom: 20px;
}
.bd-content-inner .blog-post-meta .list-wrap {
  justify-content: flex-start;
}
.blog-details-social .list-wrap {
  display: flex;
  align-items: center;
  gap: 5px;
}
.blog-details-social .list-wrap li a {
  width: 35px;
  height: 35px;
  display: flex;
  align-items: center;
  justify-content: center;
  border-radius: 4px;
  background: var(--facebook);
  color: var(--tg-white);
}
.blog-details-social .list-wrap li:nth-child(2) a {
  background: var(--twitter);
}
.blog-details-social .list-wrap li:nth-child(3) a {
  background: var(--instagram);
}
.blog-details-social .list-wrap li:nth-child(4) a {
  background: var(--linkedin);
}
.blog-details-thumb {
  margin-bottom: 20px;
}
.blog-details-thumb img {
  width: 100%;
  object-fit: cover;
  height: 450px;
  border-radius: 6px;
  border: 1px solid var(--tg-border-color);
}
.blog-details-content p {
  margin-bottom: 15px;
}
.blog-details-content p.first-info::first-letter {
  font-size: 100px;
  float: left;
  line-height: 0.8;
  font-weight: 700;
  color: var(--tg-secondary-color);
  font-family: var(--tg-heading-font-family);
  margin-right: 8px;
}
.blog-details-content blockquote {
  background: var(--tg-gray-three);
  margin: 50px 75px 35px;
  padding: 35px 40px 30px;
  border-radius: 8px;
  border: 1px solid #eee;
  position: relative;
}
.blog-details-content blockquote::before {
  content: "\e244";
  position: absolute;
  left: 40px;
  top: -20px;
  font-family: "Material Symbols Sharp";
  font-weight: 700;
  font-size: 40px;
  line-height: 1;
  color: var(--tg-primary-color);
}
.blog-details-content blockquote p {
  font-size: var(--tg-body-font-size);
  font-weight: var(--tg-body-font-weight);
  color: var(--tg-secondary-color);
  font-family: var(--tg-heading-font-family);
  line-height: var(--tg-body-line-height);
  margin-bottom: 6px;
  text-transform: none;
}
.blog-details-content blockquote cite {
  font-style: normal;
  font-size: 14px;
  font-weight: 500;
  position: relative;
  font-family: var(--tg-heading-font-family);
  padding-left: 22px;
  line-height: 1;
}
.blog-details-content blockquote cite::before {
  content: "";
  position: absolute;
  left: 0;
  top: 50%;
  width: 17px;
  height: 3px;
  background: var(--tg-secondary-color);
}
.blog-details-inner-img img {
  border-radius: 5px;
  width: 100%;
  height: 100%;
  object-fit: cover;
}
.blog-details-inner {
  margin: 40px 0;
}
.blog-details-inner-content .title-two {
  margin-bottom: 10px;
  font-size: 24px;
}
.blog-details-inner-content p {
  margin-bottom: 15px;
}
.blog-details-inner-content .list-wrap li {
  display: flex;
  align-items: center;
  gap: 10px;
  font-family: var(--tg-heading-font-family);
  font-weight: 700;
  color: var(--tg-secondary-color);
  line-height: 1.4;
  margin-bottom: 15px;
}
.blog-details-inner-content .list-wrap li:last-child {
  margin-bottom: 0;
}
.blog-details-inner-content .list-wrap li i {
  width: 22px;
  height: 22px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tg-primary-color);
  color: var(--tg-white);
  border-radius: 3px;
  font-size: 14px;
}
.blog-details-video {
  position: relative;
  margin: 40px 0 30px;
}
.blog-details-video img {
  border-radius: 5px;
  width: 100%;
  height: 400px;
  object-fit: cover;
}
.blog-details-video .paly-btn {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tg-white);
  border-radius: 50%;
  font-size: 22px;
}
.blog-details-video .paly-btn:hover {
  background: var(--tg-primary-color);
  color: var(--tg-white);
}
.blog-details-bottom {
  border-top: 1px solid #e6e6e6;
  padding-top: 30px;
  margin-top: 45px;
  margin-bottom: 50px;
}
.blog-details-bottom .post-tags {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 15px;
}
.blog-details-bottom .post-share .title,
.blog-details-bottom .post-tags .title {
  font-size: 16px;
  margin-bottom: 0;
  font-weight: 600;
}
.blog-details-bottom .post-tags .list-wrap {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 8px;
}
.blog-details-bottom .post-tags .list-wrap li a {
  font-size: 15px;
  font-weight: 500;
  background: rgba(192, 154, 82, 0.09);
  display: block;
  border-radius: 4px;
  padding: 7px 18px;
}
.blog-details-bottom .post-tags .list-wrap li a:hover {
  background: var(--tg-primary-color);
  color: var(--tg-white);
}
.blog-details-bottom .post-share {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  justify-content: flex-end;
  gap: 15px;
}
.blog-details-bottom .post-share .list-wrap {
  display: flex;
  align-items: center;
  gap: 10px;
}
.blog-details-bottom .post-share .list-wrap li a {
  font-size: 16px;
  color: var(--tg-icon-color);
}
.blog-details-bottom .post-share .list-wrap li a:hover {
  color: var(--tg-primary-color);
}
.blog-details-content p,
.weekly-post-content p,
.author-content {
  text-align: justify;
}
.blog-avatar-wrap {
  border: 1px solid #eeeeee;
  border-radius: 6px;
  display: flex;
  align-items: flex-start;
  padding: 42px 42px;
  background: var(--tg-gray-three);
}
.blog-avatar-img {
  width: 115px;
  flex: 0 0 auto;
  margin-right: 30px;
}
.blog-avatar-img img {
  border-radius: 50%;
  width: 115px;
  height: 115px;
  object-fit: cover;
}

.blog-avatar-info .designation {
  display: block;
  font-size: 16px;
  color: var(--tg-primary-color);
  line-height: 1;
  margin-bottom: 10px;
  font-family: var(--tg-heading-font-family);
}
.blog-avatar-info .name a {
  margin-bottom: 10px;
  font-size: 18px;
  font-family: var(--tg-heading-font-family);
  color: var(--tg-heading-font-color);
  font-style: normal;
  line-height: var(--tg-heading-line-height);
  font-weight: var(--tg-heading-font-weight);
  text-transform: capitalize;
}
.blog-avatar-info .name a:hover {
  color: var(--tg-primary-color);
}
.blog-avatar-info p {
  margin-bottom: 0;
}
.prev-next-post-wrap {
  margin-bottom: 60px;
}
.prev-next-post-wrap .post-item {
  display: flex;
  align-items: center;
  gap: 25px;
  margin-bottom: 30px;
}
.post-item.next-post {
  flex-direction: row-reverse;
  text-align: right;
}
.prev-next-post-wrap .post-item .thumb {
  width: 100px;
  flex: 0 0 auto;
  border-radius: 6px;
  overflow: hidden;
}
.prev-next-post-wrap .post-item .thumb img {
  width: 100%;
  object-fit: cover;
  height: 100px;
}
.prev-next-post-wrap .post-item .content span {
  display: block;
  font-weight: 500;
  line-height: 1;
  margin-bottom: 10px;
}
.prev-next-post-wrap .post-item .content .post-title {
  margin-bottom: 0;
  font-size: 18px;
  line-height: 1.4;
}
.prev-next-post-wrap .post-item:hover .content .post-title a {
  background-size: 100% 1px;
}
.comments-wrap-title {
  font-size: 24px;
  margin-bottom: 25px;
}
.comments-box {
  display: flex;
  align-items: flex-start;
  border-bottom: 1px solid #d6dce9;
  padding-bottom: 30px;
  margin-bottom: 35px;
}
.latest-comments .children {
  margin: 0 0 0 45px;
  padding: 0;
}
.comments-avatar {
  width: 115px;
  flex: 0 0 auto;
  margin-right: 25px;
}
.comments-avatar img {
  border-radius: 50%;
}
.comments-text .avatar-name {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-bottom: 10px;
}
.comments-text .avatar-name .name {
  margin-bottom: 0;
  font-size: 18px;
}
.comments-text .avatar-name span {
  font-weight: 500;
  font-size: 15px;
  display: block;
  color: var(--tg-primary-color);
}
.comments-text p {
  margin-bottom: 15px;
}
.comments-text .reply-btn {
  background: rgba(192, 154, 82, 0.09);
  font-weight: 500;
  font-size: 14px;
  display: inline-block;
  padding: 6px 17px;
  text-transform: uppercase;
  border-radius: 5px;
}
.comments-text .reply-btn:hover {
  background: var(--tg-primary-color);
  color: var(--tg-white);
}
.comment-respond {
  margin-top: 55px;
}
.comment-reply-title {
  margin-bottom: 12px;
  font-size: 24px;
}
.comment-notes {
  margin-bottom: 30px;
}
.comment-form .row {
  --bs-gutter-x: 20px;
}
.comment-form .form-grp {
  margin-bottom: 20px;
}
.comment-form .form-grp textarea,
.comment-form .form-grp input {
  width: 100%;
  border: 1px solid #eeeeee;
  background: var(--tg-gray-three);
  color: var(--tg-secondary-color);
  padding: 12px 15px;
  height: 50px;
  display: block;
  border-radius: 4px;
  font-family: var(--tg-heading-font-family);
}
.comment-form .form-grp textarea::placeholder,
.comment-form .form-grp input::placeholder {
  color: var(--tg-paragraph-color);
}
.comment-form .form-grp textarea {
  min-height: 130px;
  max-height: 130px;
}
.comment-form .checkbox-grp {
  display: flex;
  align-items: center;
  margin: 10px 0 25px;
}
.comment-form .checkbox-grp input {
  width: 22px;
  margin-right: 9px;
  height: 22px;
  cursor: pointer;
}
.comment-form .checkbox-grp label {
  font-weight: 400;
  font-size: 14px;
  color: var(--tg-paragraph-color);
  user-select: none;
}
.comment-forbidden.nav-link {
  color: var(--tg-paragraph-color);
  padding: 0px;
}
.post-tag a {
  color: var(--tg-white);
  font-family: var(--tg-heading-font-family);
  font-size: 13px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 0.78px;
  text-transform: uppercase;
}
p {
  text-transform: none;
  text-align: justify;
}
.blog-details-content .post-tags ul.links {
  display: inline-flex;
}
.blog-details-content .post-tags a {
  background: var(--tg-primary-color);
  color: var(--tg-white);
  font-family: var(--tg-heading-font-family);
  font-size: 0.8em;
  font-weight: 400;
  line-height: normal;
  letter-spacing: 0.78px;
  text-transform: uppercase;
  display: inline-block;
  border-radius: 4px;
  padding: 3px 5px;
  align-items: center;
}
.blog-details-video .play-btn {
  position: absolute;
  left: 50%;
  top: 50%;
  transform: translate(-50%, -50%);
  width: 70px;
  height: 70px;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--tg-white);
  border-radius: 50%;
  font-size: 22px;
}
.blog-details-video .play-btn:hover {
  background: var(--tg-primary-color);
  color: var(--tg-white);
}
.toc-title.h2 {
  color: var(--tg-heading-font-color);
  margin-bottom: 30px;
  font-size: 22px;
}
a.footnote__citation {
  vertical-align: super;
  font-size: calc(var(--tg-body-font-size) - 4px);
}
/* ── Article footnotes section ───────────────────────────────────────────
   Hidden until footnote items exist — works for both PHP-rendered items
   (render cache miss) and JS-injected items (render cache hit).
   The .panel inside provides all heading/border/badge styling automatically. */
.article-footnotes {
  display: none;
}
.article-footnotes:has(.js-footnote-reference) {
  display: block;
}
/* No top margin needed: .panel already has margin: 4px 0 20px */
/* Inline source list (inside .blog-content) — hidden from readers,
   exists only as a JS source for footnotes.group_block_via_js.js */
.blog-content .footnotes.js-footnotes {
  display: none;
}

.article-footnotes .footnotes {
  margin: 0;
  padding-left: 1rem;
}

/* ── Markdown Easy footnote items (CommonMark FootnoteExtension) ─────────
   These have class "footnote" and contain a <p> + backref <a>, unlike the
   Drupal Footnotes module's span-based structure.                          */
.article-footnotes li.footnote {
  list-style: decimal;
  padding: 4px 0;
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--tg-body-font-color);
}
.article-footnotes li.footnote p {
  display: inline;
  margin: 0;
}
.article-footnotes li.footnote .footnote-backref {
  text-decoration: none;
  color: var(--tg-icon-color, #8a9bae);
  margin-left: 5px;
  font-size: 0.8rem;
  vertical-align: middle;
  transition: color 0.15s ease;
}
.article-footnotes li.footnote .footnote-backref:hover {
  color: var(--tg-primary-color, #c09a52);
}
[data-bs-theme="dark"] .article-footnotes li.footnote {
  color: #c8d0da;
}

.footnotes {
  position: relative;
  margin: 1em 0;
  padding-left: 0;
  border-top: none;
}
a.footnotes__item-backlink::before {
  font-family: "Material Symbols Sharp";
  content: "\e5d8";
  margin-right: 5px;
}
.block-footnotes {
  margin-bottom: 45px;
}
a.feed-icon::before {
  font-family: "Material Symbols Sharp";
  content: "\e0e5";
  margin-right: 10px;
}
/*=============================
	11. Pagination
===============================*/
.pagination {
  gap: 6px;
  justify-content: center;
  flex-wrap: wrap;
  margin-top: 60px;
}
.pagination .page-link {
  margin-left: 0;
  padding: 0 15px;
  color: var(--tg-black-two);
  font-weight: 500;
  font-size: 14px;
  line-height: 1;
  width: auto;
  height: 40px;
  font-family: var(--tg-heading-font-family);
  display: flex;
  align-items: center;
  justify-content: center;
  border: 1px solid #cfcfcf;
  border-radius: 3px;
  background: var(--tg-gray-three);
  transition: 0.3s linear;
}
.pagination .page-item.active .page-link,
.pagination .page-link:hover {
  color: var(--tg-white);
  background-color: var(--tg-primary-color);
  border-color: var(--tg-primary-color);
}
.pagination .page-link:focus {
  color: var(--tg-white);
  background-color: var(--tg-primary-color);
  border-color: var(--tg-primary-color);
  outline: 0;
  box-shadow: none;
}

/*=============================
	12. Contact
===============================*/
.contact-map {
  width: 100%;
  height: 530px;
}
.contact-map iframe {
  width: 100%;
  height: 100%;
  mix-blend-mode: luminosity;
}
/*=============================
	13. Footer
===============================*/
.footer-top {
  padding: 100px 0 60px;
  position: relative;
  background: var(--tg-black);
  z-index: 1;
}
.footer-shape {
  background-size: cover;
  background-position: center;
  height: 61px;
  width: 100%;
  position: absolute;
  left: 0;
  bottom: 0;
  z-index: -1;
}
.footer-widget {
  margin-bottom: 40px;
}
.fw-logo {
  margin-bottom: 20px;
  max-width: 80%;
}
.footer-content p {
  margin-bottom: 0;
  color: var(--tg-gray-two);
  width: 95%;
}
.footer-widget .fw-title {
  position: relative;
  margin-bottom: 20px;
  padding-bottom: 20px;
  color: var(--tg-white);
  font-size: 20px;
  font-weight: 800;
}
.footer-widget .fw-title::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 32px;
  height: 5px;
  background: var(--tg-primary-color);
  clip-path: polygon(0 0, 100% 0%, 90% 100%, 0% 100%);
}
.footer-link-wrap .list-wrap li {
  margin-bottom: 8px;
}
.footer-link-wrap .list-wrap li:last-child {
  margin-bottom: 0;
}
.footer-link-wrap .list-wrap li a {
  color: var(--tg-gray-two);
  font-size: 15px;
  font-weight: 500;
  position: relative;
  text-transform: capitalize;
}
.footer-link-wrap .list-wrap li a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: var(--tg-gray-two);
  -webkit-transform-origin: right top;
  -ms-transform-origin: right top;
  transform-origin: right top;
  -webkit-transform: scale(0, 1);
  -ms-transform: scale(0, 1);
  transform: scale(0, 1);
  -webkit-transition: transform 0.4s cubic-bezier(1, 0, 0, 1);
  transition: transform 0.4s cubic-bezier(0.74, 0.72, 0.27, 0.24);
}
.footer-link-wrap .list-wrap li a:hover::before {
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
  -webkit-transform: scale(1, 1);
  -ms-transform: scale(1, 1);
  transform: scale(1, 1);
}
.footer-top .row [class*="col-"]:nth-child(3) .footer-widget {
  margin-left: 55px;
}
.footer-bottom {
  border-top: 1px solid #202e3f;
  padding: 35px 0;
  background-color: var(--tg-black);
  background-image: url("../images/footer_shape.webp");
  background-repeat: no-repeat;
  background-position: center center;
  background-size: cover;
}
.footer-bottom-menu .list-wrap {
  display: flex;
  align-items: center;
  gap: 25px;
}
.footer-bottom-menu .list-wrap li {
  position: relative;
}
.footer-bottom-menu .list-wrap li::before {
  content: "";
  position: absolute;
  right: -14px;
  top: 50%;
  width: 4px;
  height: 4px;
  border-radius: 50%;
  background: #7c91aa;
}
.footer-bottom-menu .list-wrap li:last-child::before {
  display: none;
}
.footer-bottom-menu .list-wrap li a {
  color: #7c91aa;
  position: relative;
}
.footer-bottom-menu .list-wrap li a::before {
  content: "";
  position: absolute;
  left: 0;
  bottom: 0;
  width: 100%;
  height: 1px;
  background: #7c91aa;
  -webkit-transform-origin: right top;
  -ms-transform-origin: right top;
  transform-origin: right top;
  -webkit-transform: scale(0, 1);
  -ms-transform: scale(0, 1);
  transform: scale(0, 1);
  -webkit-transition: transform 0.4s cubic-bezier(1, 0, 0, 1);
  transition: transform 0.4s cubic-bezier(0.74, 0.72, 0.27, 0.24);
}
.footer-bottom-menu .list-wrap li a:hover::before {
  -webkit-transform-origin: left top;
  -ms-transform-origin: left top;
  transform-origin: left top;
  -webkit-transform: scale(1, 1);
  -ms-transform: scale(1, 1);
  transform: scale(1, 1);
}
.copyright-text p {
  margin-bottom: 0;
  color: #7c91aa;
  text-align: right;
}
.footer-offices {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 6px;
  margin: 0;
  color: #7c91aa;
  font-size: inherit;
  line-height: inherit;
}
.footer-offices__pin {
  font-size: 16px;
  color: #7c91aa;
  font-variation-settings:
    "FILL" 1,
    "wght" 400,
    "GRAD" 0,
    "opsz" 20;
  flex-shrink: 0;
  line-height: 1;
  vertical-align: middle;
}
@media (max-width: 767px) {
  .footer-offices {
    margin-block: 0.75rem;
  }
  .copyright-text p {
    text-align: center;
  }
}
/* footer-two */
.footer-area-two {
  margin-top: -100px;
  padding: 100px 0 0;
}
/* footer-three */
.footer-top-two {
  background: #0d1b2a;
  padding: 100px 0;
  position: relative;
  z-index: 1;
}
.footer-shape-two {
  position: absolute;
  left: 0;
  bottom: 0;
  background-size: cover;
  background-position: center;
  width: 100%;
  height: 95px;
  z-index: -1;
}
.footer-content-two {
  text-align: center;
}
.footer-content-two p {
  margin-bottom: 45px;
  color: var(--tg-gray-two);
  text-transform: capitalize;
}
.footer-social .list-wrap {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 20px 50px;
}
.footer-social .list-wrap li a {
  display: flex;
  align-items: center;
  font-size: 18px;
  font-weight: 600;
  color: var(--tg-white);
  gap: 8px;
}
.footer-social .list-wrap li a i {
  font-size: 20px;
}
.footer-social .list-wrap li a:hover {
  color: var(--tg-primary-color);
}
.footer-bottom-two {
  background: #07111e;
  padding: 26px 0;
}
.copyright-text-two p {
  margin-bottom: 0;
  text-align: center;
  color: #7c91aa;
}
/* footer-four */
.footer-top-three .footer-content p {
  color: var(--tg-body-font-color);
}
.footer-top-three .footer-widget .fw-title {
  color: var(--tg-secondary-color);
}
.footer-top-three .footer-link-wrap .list-wrap li a {
  color: var(--tg-body-font-color);
}
.footer-top-three .footer-link-wrap .list-wrap li a:hover {
  color: var(--tg-secondary-color);
}
.footer-top-three .footer-link-wrap .list-wrap li a::before {
  background: var(--tg-secondary-color);
}
.footer-bottom-three {
  border-color: var(--tg-border-color);
}
.footer-bottom-three .footer-bottom-menu .list-wrap li a {
  color: var(--tg-body-font-color);
}
.footer-bottom-three .footer-bottom-menu .list-wrap li a:hover {
  color: var(--tg-secondary-color);
}
.footer-bottom-three .footer-bottom-menu .list-wrap li a::before {
  background: var(--tg-secondary-color);
}
.footer-bottom-three .copyright-text p {
  color: var(--tg-body-font-color);
}
/*=============================
    14. ACCORDION
===============================*/
.accordion-body {
  color: var(--tg-paragraph-color);
}
.accordion-button:is(.collapsed) {
  background-color: transparent !important;
  color: var(--tg-paragraph-color);
}
.accordion-button:not(.collapsed) {
  background-color: transparent !important;
  color: var(--tg-primary-color);
  font-weight: bold;
}
[data-bs-theme="dark"] .accordion-button:is(.collapsed) {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .accordion {
  --bs-accordion-color: var(--tg-white);
  --bs-accordion-bg: transparent;
  --bs-accordion-border-color: var(--bs-border-color);
  --bs-accordion-btn-color: var(--bs-body-color);
  --bs-accordion-btn-bg: transparent;
  --bs-accordion-btn-focus-border-color: var(--bs-border-color);
  --bs-accordion-active-color: var(--bs-body-color);
  --bs-accordion-active-bg: var(--bs-secondary-bg);
}
/*=============================
    15. Mode Trigger
===============================*/
/* ── Corner FAB — darkmode + scroll-top + Klaro combined ──────────────────
   JS (corner-fab.js) moves the three body-level elements into .corner-fab
   and wires the trigger. These rules define layout and animation.          */

/* FAB container — anchored bottom-right, stacks children upward */
.corner-fab {
  position: fixed;
  bottom: 16px;
  right: 16px;
  z-index: 999;
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 8px;
}

/* Trigger button — always visible */
.corner-fab__trigger {
  width: 35px;
  height: 35px;
  border-radius: 8px;
  border: none;
  background: var(--tg-secondary-color);
  color: var(--tg-white);
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  transition: background 0.2s ease;
}

.corner-fab__trigger:hover {
  background: var(--tg-primary-color);
}

.corner-fab__trigger .material-symbols-sharp {
  font-size: 20px;
  line-height: 1;
  font-variation-settings:
    "wght" 400,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  transition: transform 0.3s ease;
}

/* Rotate the icon 45° when open so + becomes × */
.corner-fab.is-open .corner-fab__trigger .material-symbols-sharp {
  transform: rotate(45deg);
}

/* Child items — hidden until FAB is open */
.corner-fab__items {
  display: flex;
  flex-direction: column-reverse;
  align-items: center;
  gap: 8px;
  /* hidden state */
  opacity: 0;
  pointer-events: none;
  visibility: hidden;
  transition:
    opacity 0.22s ease,
    transform 0.22s ease,
    visibility 0s linear 0.22s;
}

.corner-fab.is-open .corner-fab__items {
  opacity: 1;
  pointer-events: auto;
  visibility: visible;
  transition:
    opacity 0.22s ease,
    transform 0.22s ease,
    visibility 0s linear 0s;
}

/* Reset fixed positioning on elements moved into the FAB.
   darkmode-trigger keeps position:relative so its ::after tooltip
   anchors to the button, not to a distant ancestor. */
.corner-fab .darkmode-trigger {
  position: relative;
  margin: 0;
  bottom: auto;
  right: auto;
  opacity: 1;
  pointer-events: auto;
}

.corner-fab .scroll-top {
  position: static;
  margin: 0;
  bottom: auto;
  right: auto;
  opacity: 1;
  pointer-events: auto;
}

/* Darkmode trigger base style (colours/size only — positioning above) */
.darkmode-trigger {
  width: 35px;
  height: 35px;
  background-color: var(--tg-secondary-color);
  color: var(--tg-white);
  border-radius: 8px;
  /* position/margin/right/bottom intentionally unset here —
     the .corner-fab wrapper controls placement                */
  position: fixed; /* fallback before JS runs */
  margin: 0;
  right: 16px;
  bottom: 67px;
  z-index: 99;
  /* Hidden until corner-fab.js adopts this button into .corner-fab__items —
     avoids a FOUC where it flashes at its fallback position before JS runs
     (e.g. when script execution is deferred by Cloudflare Rocket Loader).
     .corner-fab .darkmode-trigger above restores visibility once adopted;
     the FAB's own opacity/visibility then governs whether it's shown. */
  opacity: 0;
  pointer-events: none;
}
/* ── LIGHT MODE: gold background, white moon ── */
.darkmode-trigger {
  background-color: #c09a52;
  border: none; /* reset browser default <button> border */
  display: flex;
  align-items: center;
  justify-content: center;
  position: relative;
  cursor: pointer;
  box-shadow: 0 2px 8px rgba(192, 154, 82, 0.45);
  transition:
    background-color 0.2s ease,
    box-shadow 0.2s ease;
}

.darkmode-trigger:hover {
  background-color: #b08840;
  box-shadow: 0 4px 14px rgba(192, 154, 82, 0.6);
}

/* Icon spans: filled, explicit size */
.dm-icon--moon,
.dm-icon--sun {
  font-size: 20px;
  line-height: 1;
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

/* Light mode: white moon on gold */
.dm-icon--moon {
  display: block;
  color: #ffffff;
  font-size: 16px;
}
.dm-icon--sun {
  display: none;
}

/* ── Tooltip ──────────────────────────────────────────────────────────── */
.darkmode-trigger::after {
  content: "Dark mode";
  position: absolute;
  right: calc(100% + 8px);
  top: 50%;
  background: #0d1b2a;
  color: #c09a52;
  font-family: var(--tg-body-font-family);
  font-size: 11px;
  font-weight: 600;
  white-space: nowrap;
  padding: 4px 8px;
  border-radius: 4px;
  pointer-events: none;
  opacity: 0;
  transition: opacity 0.15s ease;
}

.darkmode-trigger:hover::after {
  opacity: 1;
}

/* ── DARK MODE: midnight navy background, gold sun ───────────────────────
   Navy background blends with dark surfaces; gold sun pops clearly and
   reads as "switch to light mode".                                        */
[data-bs-theme="dark"] .darkmode-trigger {
  background-color: #0d1b2a;
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.5);
}

[data-bs-theme="dark"] .darkmode-trigger:hover {
  background-color: #0f2035;
  box-shadow: 0 4px 14px rgba(0, 0, 0, 0.65);
}

[data-bs-theme="dark"] .darkmode-trigger .modeSwitch {
  color: #c09a52;
}

/* Dark mode: sun visible, moon hidden */
[data-bs-theme="dark"] .dm-icon--moon {
  display: none;
}
[data-bs-theme="dark"] .dm-icon--sun {
  display: block;
  color: #c09a52;
}

[data-bs-theme="dark"] .darkmode-trigger::after {
  content: "Light mode";
  background: #c09a52;
  color: #0d1b2a;
}
/*=============================
    16. Dark CSS
===============================*/
[data-bs-theme="dark"] {
  --tg-heading-font-color: var(--tg-white);
  --tg-gray: var(--tg-border-dark);
  --tg-teal: #0f1e35;
}
[data-bs-theme="dark"] body {
  background: var(--tg-black);
  --background: var(--tg-black);
}
[data-bs-theme="dark"] p {
  color: var(--tg-gray-three);
}
[data-bs-theme="dark"] .field--name-field-subtitle {
  color: var(--tg-white);
  text-align: justify;
}
[data-bs-theme="dark"] .header-top-wrap {
  background: #0f1e35;
}
[data-bs-theme="dark"] *::placeholder {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .header-search-wrap form input {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .header-search-wrap form input::placeholder {
  color: var(--tg-gray-three);
  opacity: 0.5;
}
[data-bs-theme="dark"] .webform-managed-file-placeholder {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .header-search-wrap form button {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .header-cart strong {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .header-action .header-sine-in a {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .header-action .header-sine-in a:hover {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .post-title a:hover {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .newsletter-shape-wrap {
  opacity: 0.2;
}
[data-bs-theme="dark"] .newsletter-form .form-grp input {
  color: var(--tg-white);
  background: #273341;
}
[data-bs-theme="dark"] .section-title-line {
  border-color: var(--tg-border-dark);
}
[data-bs-theme="dark"] .section-title-line::after {
  background: var(--tg-black);
}
[data-bs-theme="dark"] .view-all-btn .link-btn {
  /* border-color: var(--tg-border-dark); */
  color: var(--tg-white);
}
[data-bs-theme="dark"] .view-all-btn .link-btn:hover {
  border-color: var(--tg-secondary-color);
}
[data-bs-theme="dark"] .categories-item {
  border: 3px solid #ede8e0;
}
[data-bs-theme="dark"] .sidebar-avatar {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .sidebar-avatar-shape img {
  opacity: 0.2;
}
[data-bs-theme="dark"] .sidebar-social-wrap .list-wrap li a {
  background: var(--tg-border-dark);
  color: var(--tg-white);
}
[data-bs-theme="dark"] .sidebar-social-wrap .list-wrap li a:hover {
  background: var(--tg-primary-color);
}
[data-bs-theme="dark"] .categories-shape-wrap img {
  opacity: 0.2;
}
[data-bs-theme="dark"] .overlay-post-thumb::after {
  background: linear-gradient(180deg, rgba(13, 27, 42, 0) 0%, #000 83.34%);
}
[data-bs-theme="dark"] .footer-area {
  background: #0d1b2a;
}
[data-bs-theme="dark"] .footer-top {
  background: #0d1b2a;
  border-top: 1px solid rgba(32, 46, 63);
}
[data-bs-theme="dark"] .copyright-text p {
  color: #7c91aa;
}
[data-bs-theme="dark"] .sticky-menu {
  background: var(--tg-black);
}
/* Legacy dark [data-bs-theme] .navbar-wrap .sub-menu rule removed — see mobile-menu.css. */
/* Legacy offCanvas / mobile-menu dark-theme rules removed.
   TB Megamenu mobile dark-mode theming lives in mobile-menu.css. */
[data-bs-theme="dark"] .newsletter-form .form-grp input::placeholder {
  color: var(--tg-white);
  opacity: 0.5;
}
[data-bs-theme="dark"] .menu-area.menu-style-two {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .header-style-two {
  background: #0f161e;
}
[data-bs-theme="dark"] .section-title-line-three {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .post-tag-two {
  /* border-color: var(--tg-teal); */
}
[data-bs-theme="dark"] .post-tag-two:hover {
  background: var(--tg-primary-color);
}
[data-bs-theme="dark"] .sidebar-newsletter {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .header-top-wrap-two {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .menu-area.menu-style-three {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .editor-nav .slick-arrow {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .editor-nav .slick-arrow:hover {
  border-color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .header-top-wrap-three {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .sidebar-avatar-two {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .sidebar-avatar-two .sidebar-avatar-thumb {
  border: 5px solid var(--tg-gray);
}
[data-bs-theme="dark"] .trending-shape-wrap img {
  opacity: 0.2;
}
[data-bs-theme="dark"] .header-logo-area-three {
  background: #0f161e;
}
[data-bs-theme="dark"] .coin-item .content > span {
  color: var(--tg-gray-three);
}
[data-bs-theme="dark"] .menu-area.menu-style-six {
  box-shadow: 0px 2px 10px 0px rgb(78 78 78 / 10%);
}
[data-bs-theme="dark"] .hl-left-side-four .date {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .hl-left-side-four .date i {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .hl-right-side-four .sign-in a {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .hl-right-side-four .sign-in a:hover {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .news-banner-small-post::before {
  background: var(--tg-gray);
}
[data-bs-theme="dark"] .banner-post-five {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .header-top-wrap-four {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .sidebar-wrap-three::before {
  background: var(--tg-gray);
}
[data-bs-theme="dark"] .stories-post {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .politics-post-wrap-two::before {
  background: var(--tg-gray);
}
[data-bs-theme="dark"] .politics-post-two {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .editor-post-area-three {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .editor-nav-two .slick-arrow {
  border-color: var(--tg-border-dark);
}
[data-bs-theme="dark"] .editor-nav-two .slick-arrow:hover {
  border-color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .editor-post-area-three .section-title-line::after {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .editor-post-three::before {
  background: var(--tg-gray);
}
[data-bs-theme="dark"] .hot-post-item-two {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .footer-bottom-three {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .footer-top-three .footer-content p {
  color: var(--tg-gray-three);
}
[data-bs-theme="dark"] .footer-top-three .footer-widget .fw-title {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .footer-link-wrap .list-wrap li a {
  color: var(--tg-gray-two);
}
[data-bs-theme="dark"] .footer-link-wrap .list-wrap li a:hover {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .footer-bottom-menu .list-wrap li a::before,
[data-bs-theme="dark"]
  .footer-top-three
  .footer-link-wrap
  .list-wrap
  li
  a::before {
  background: var(--tg-white);
}
[data-bs-theme="dark"] .footer-bottom-menu .list-wrap li a {
  color: var(--tg-gray-two);
}
[data-bs-theme="dark"] .footer-bottom-menu .list-wrap li a:hover {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .stories-post-two {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .search__popup {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .header-search-wrap form button:hover {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .banner-post-seven::before {
  /* background: var(--tg-gray); */
}
[data-bs-theme="dark"] .breadcrumb-area {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .breadcrumb-content .breadcrumb-item a {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .breadcrumb-content .breadcrumb-item a:hover {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"]
  .breadcrumb-content
  .breadcrumb-item
  + .breadcrumb-item::before {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .about-content > span {
  color: var(--tg-gray-three);
}
[data-bs-theme="dark"] .team-area {
  background: var(--tg-border-dark);
}
[data-bs-theme="dark"] .team-content {
  background: var(--tg-black);
}
[data-bs-theme="dark"] .author-wrap {
  background: var(--tg-teal);
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .author-thumb img {
  box-shadow: 0px 4px 20px 0px #000000;
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .author-social .list-wrap li a {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .author-social .list-wrap li a:hover {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .sidebar-search form input {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .sidebar-search form input::placeholder {
  color: var(--tg-white);
  opacity: 0.4;
}
[data-bs-theme="dark"] .pagination-wrap .pagination .page-link {
  color: var(--tg-white);
  border-color: var(--tg-gray);
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .pagination-wrap .pagination .page-link:hover {
  color: var(--tg-white);
  border-color: var(--tg-primary-color);
  background: var(--tg-primary-color);
}
[data-bs-theme="dark"] .blog-details-content blockquote {
  background: var(--tg-teal);
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .blog-details-content blockquote p {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .blog-details-content blockquote cite {
  color: var(--tg-gray-two);
}
[data-bs-theme="dark"] .blog-details-content blockquote cite::before {
  background: var(--tg-border-dark);
}
[data-bs-theme="dark"] .blog-details-bottom {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .blog-details-bottom .post-tags .list-wrap li a {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .blog-details-bottom .post-tags .list-wrap li a:hover {
  background: var(--tg-primary-color);
}
[data-bs-theme="dark"] .blog-details-bottom .post-share .list-wrap li a {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .blog-details-bottom .post-share .list-wrap li a:hover {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .blog-avatar-wrap {
  border-color: var(--tg-gray);
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .prev-next-post-wrap .post-item .content span {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .comments-text .reply-btn {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .comments-text .reply-btn:hover {
  background: var(--tg-primary-color);
}
[data-bs-theme="dark"] .comments-box {
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .comment-form .form-grp textarea,
[data-bs-theme="dark"] .comment-form .form-grp input {
  border-color: var(--tg-gray);
  background: var(--tg-teal);
  color: var(--tg-white);
}
[data-bs-theme="dark"] .comment-form .form-grp textarea::placeholder,
[data-bs-theme="dark"] .comment-form .form-grp input::placeholder {
  color: var(--tg-white);
  opacity: 0.5;
}
[data-bs-theme="dark"] .comment-form .checkbox-grp input {
  background-color: var(--tg-teal);
}
[data-bs-theme="dark"] .comment-form .checkbox-grp label {
  color: var(--tg-gray-three);
}
[data-bs-theme="dark"] .blog-details-content p.first-info::first-letter {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .blog-details-inner-content .list-wrap li {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .contact-info-item {
  background: var(--tg-teal);
  border-color: var(--tg-gray);
}
[data-bs-theme="dark"] .contact-info-item .content::before {
  background: var(--tg-gray);
}
[data-bs-theme="dark"] .contact-info-item .content p {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .contact-form {
  background: var(--tg-teal);
}
[data-bs-theme="dark"] .contact-form .form-grp textarea,
[data-bs-theme="dark"] .contact-form .form-grp input {
  border-color: var(--tg-gray);
  background: var(--tg-gray);
  color: var(--tg-white);
}
[data-bs-theme="dark"] .contact-form .form-grp textarea::placeholder,
[data-bs-theme="dark"] .contact-form .form-grp input::placeholder {
  color: var(--tg-white);
  opacity: 0.5;
}
[data-bs-theme="dark"] .menu-area .logo {
  display: none !important;
}
[data-bs-theme="dark"] .menu-area .logo.d-none {
  display: block !important;
}
[data-bs-theme="dark"] .menu-area.menu-style-two .logo.d-none {
  display: none !important;
}
[data-bs-theme="dark"] .header-logo-area-two .logo {
  display: none !important;
}
[data-bs-theme="dark"] .header-logo-area-two .logo.d-none {
  display: block !important;
}
[data-bs-theme="dark"] .menu-area.menu-style-four .logo {
  display: none !important;
}
[data-bs-theme="dark"] .header-logo-area-four .logo {
  display: none;
}
[data-bs-theme="dark"] .header-logo-area-four .logo.d-none {
  display: block !important;
}
[data-bs-theme="dark"] .menu-area.menu-style-six .logo.d-none {
  display: none !important;
}
/* Legacy dark .mobile-menu .nav-logo rules removed — TB Megamenu is the sole mobile nav. */
[data-bs-theme="dark"] .footer-area-four .fw-logo.d-none {
  display: block !important;
}
[data-bs-theme="dark"] .footer-area-four .fw-logo {
  display: none !important;
}
/* Legacy dark .offCanvas-wrap logo rules removed — offCanvas replaced by TB Megamenu. */
[data-bs-theme="dark"] #preloader {
  background: var(--tg-black);
}
[data-bs-theme="dark"] #fg-loader {
  color: var(--tg-white);
}
/* [data-bs-theme="dark"] .navbar-wrap ul li a {
  color: var(--tg-white);
  fill: var(--tg-white);
} */
[data-bs-theme="dark"] .nav-link--user-login::before {
  color: var(--tg-white);
}
[data-bs-theme="dark"] a[href*="/contact-us"]::before,
a[href*="/user/login"]::before,
a[href*="/user/logout"]::before {
  color: var(--tg-white);
}
[data-bs-theme="dark"] label {
  color: var(--tg-white);
}
/*---------------------------------------------------*/
/*    Dark Mode Addition
/*---------------------------------------------------*/
[data-bs-theme="dark"] .author-content {
  color: var(--tg-white);
}
[data-bs-theme="dark"] tr {
  color: #c8d6e5;
}
[data-bs-theme="dark"] td {
  color: #c8d6e5;
}
[data-bs-theme="dark"] li {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .blog-details-bottom {
  border-top: 1px solid var(--tg-white);
  padding-top: 30px;
  margin-top: 45px;
  margin-bottom: 50px;
}
[data-bs-theme="dark"] .inline__links .nav-link {
  color: var(--tg-white);
}
[data-bs-theme="dark"] .categories-img a {
}
.categories-img svg {
  width: 180px;
  height: 180px;
}
[data-bs-theme="dark"] .categories-img img {
  filter: brightness(0) invert(1);
}
/*=============================
    17. Material Design Icon Styling
===============================*/
.material-symbols-sharp {
  font-size: 24px;
  line-height: 1.25;
}
[data-bs-theme="dark"] .form-control {
  color: var(--tg-white);
  background-color: var(--tg-black);
}
[data-bs-theme="dark"] .form-select {
  display: block;
  width: 100%;
  padding: 0.375rem 2.25rem 0.375rem 0.75rem;
  font-size: 1rem;
  font-weight: 400;
  line-height: 1.5;
  color: var(--tg-white);
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: var(--tg-black);
  background-repeat: no-repeat;
  background-position: right 0.75rem center;
  background-size: 16px 12px;
  border: var(--bs-border-width) solid var(--tg-border-color);
  border-radius: var(--bs-border-radius);
  transition:
    border-color 0.15s ease-in-out,
    box-shadow 0.15s ease-in-out;
}
/*=============================
	18. Button style
===============================*/
.btn {
  user-select: none;
  -moz-user-select: none;
  background: var(--tg-secondary-color) none repeat scroll 0 0;
  border: medium none;
  border-radius: 4px;
  color: var(--tg-white);
  cursor: pointer;
  display: inline-flex;
  align-items: center;
  font-size: 14px;
  font-weight: 700;
  letter-spacing: 0;
  line-height: 1;
  margin-bottom: 0;
  padding: 18px 45px;
  text-align: center;
  text-transform: uppercase;
  touch-action: manipulation;
  transition: all 0.3s ease 0s;
  vertical-align: middle;
  white-space: nowrap;
  font-family: var(--tg-heading-font-family);
  position: relative;
  z-index: 1;
  overflow: hidden;
}
.btn:hover {
  color: var(--tg-white);
}
.btn-two {
  background: var(--tg-primary-color);
}
.breadcrumb > .active {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .btn,
.btn {
  /* White-on-gold is ~2.6:1 — fails WCAG AA (needs 4.5:1) and reads as
     washed-out on a brand-compliance audit. Navy-on-gold is ~6.6:1,
     passes AA/AAA, and reads as a deliberate premium "foil" combination. */
  background-color: var(--tg-primary-color);
  color: var(--tg-secondary-color);
  border: none;
  border-radius: 4px;
  justify-content: center;
}
[data-bs-theme="dark"] .btn:hover,
[data-bs-theme="dark"] .btn-primary:hover,
.btn:hover,
.btn-primary:hover {
  background: var(--tg-secondary-color);
  color: var(--tg-white);
}
/* Dark mode: the navy hover above is nearly identical to the dark-mode
   page background (--background-color: #0A1520), making buttons vanish
   on hover (~1.06:1 contrast). A plain white knockout fixed contrast but
   read as a jarring outlier against the dark/gold palette. Lightening the
   brand gold instead — the same color-mix(...gold 80%, #fff 20%) tint used
   elsewhere in this file (e.g. line 3413) — keeps the hover "in family"
   with the resting gold button and the rest of the dark UI's gold accents,
   while still landing at 8.2:1 against navy text and 8.7:1 against the
   page background (comfortably passes AAA both ways). */
[data-bs-theme="dark"] .btn:hover,
[data-bs-theme="dark"] .btn-primary:hover {
  background: color-mix(in srgb, var(--tg-primary-color) 80%, #fff 20%);
  color: var(--tg-secondary-color);
}
/*=============================
    19. Scroll up
===============================*/
.scroll-top {
  width: 35px;
  height: 35px;
  /* position/right/bottom reset by .corner-fab .scroll-top once JS
     adopts this button — fixed values below are only the fallback
     shown before corner-fab.js runs, to avoid a FOUC where this
     renders inline at the top of the page. */
  position: fixed;
  right: 16px;
  bottom: 16px;
  z-index: 99;
  color: var(--tg-white);
  text-align: center;
  cursor: pointer;
  background: var(--tg-primary-color);
  transition: background 0.2s ease;
  border: none;
  border-radius: 8px;
  /* Hidden until corner-fab.js adopts this button into .corner-fab__items —
     avoids a FOUC where it flashes at its fallback bottom-right position
     before JS runs (e.g. when script execution is deferred by Cloudflare
     Rocket Loader). .corner-fab .scroll-top above restores visibility once
     adopted; the FAB's own opacity/visibility then governs whether it's
     shown. */
  opacity: 0;
  pointer-events: none;
}

/* Hide on mobile — swipe is the native gesture */
@media (max-width: 767.98px) {
  .corner-fab .scroll-top {
    display: none !important;
  }
}
.scroll-top:hover {
  background: var(--tg-secondary-color);
}
/*=============================
    20. Table styling — minimalist, no backgrounds, thin borders
===============================*/

/* Strip all Bootstrap-generated backgrounds and box-shadows */
.table,
.table > :not(caption) > * > * {
  background-color: transparent !important;
  box-shadow: none !important;
}

.table {
  --bs-table-color: var(--tg-body-font-color);
  --bs-table-bg: transparent;
  --bs-table-striped-bg: transparent;
  --bs-table-hover-bg: transparent;
  --bs-table-border-color: var(--tg-border-color);
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
}

/* All cells: bottom border only — clean row-rule pattern */
.table > thead > tr > th,
.table > thead > tr > td,
.table > tbody > tr > th,
.table > tbody > tr > td,
.table > tfoot > tr > th,
.table > tfoot > tr > td {
  border: none;
  border-bottom: 1px solid var(--tg-border-color);
  padding: 10px 14px;
  font-size: calc(var(--tg-body-font-size) - 1px);
  vertical-align: top;
  background-color: transparent !important;
  color: var(--tg-body-font-color);
}

/* Header row: gold accent underline, small-caps label style */
.table > thead > tr > th {
  border-bottom: 2px solid var(--tg-primary-color);
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
  color: var(--tg-heading-font-color);
}

/* Last body row: remove trailing border */
.table > tbody > tr:last-child > td,
.table > tbody > tr:last-child > th {
  border-bottom: none;
}

/* ── Dark mode ─────────────────────────────────────── */
[data-bs-theme="dark"] .table {
  --bs-table-color: #c8d6e5;
  --bs-table-bg: transparent;
  --bs-table-striped-bg: transparent;
  --bs-table-hover-bg: transparent;
  --bs-table-border-color: rgba(255, 255, 255, 0.1);
  --bs-border-color: rgba(255, 255, 255, 0.1) !important;
  --bs-emphasis-color: #e0e8f0 !important;
}

[data-bs-theme="dark"] .table > thead > tr > th,
[data-bs-theme="dark"] .table > thead > tr > td,
[data-bs-theme="dark"] .table > tbody > tr > th,
[data-bs-theme="dark"] .table > tbody > tr > td,
[data-bs-theme="dark"] .table > tfoot > tr > th,
[data-bs-theme="dark"] .table > tfoot > tr > td {
  border-bottom-color: rgba(255, 255, 255, 0.1);
  color: #c8d6e5;
}

[data-bs-theme="dark"] .table > thead > tr > th {
  border-bottom-color: var(--tg-primary-color);
  color: #e0e8f0;
}
/*=============================
    21. Sponsor banner
===============================*/

/* ── Shared wrapper ──────────────────────────────────────────────────────── */
.sponsor {
  margin: 40px 0 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   PAID SPONSOR  (.sponsor--paid)
   Shows the sponsor's uploaded image with a small "Sponsored" disclosure.
   ═══════════════════════════════════════════════════════════════════════════ */
.sponsor--paid {
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 10px;
  overflow: hidden;
  background: #fafaf9;
}
.sponsor-paid__label {
  font-size: 10px;
  font-weight: 600;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tg-icon-color, #8a9bae);
  padding: 8px 14px 4px;
  margin: 0;
}
.sponsor-paid__img {
  display: block;
  width: 100%;
  height: auto;
  max-height: 140px;
  object-fit: cover;
  transition: opacity 0.18s ease;
}
.sponsor--paid a:hover .sponsor-paid__img {
  opacity: 0.9;
}

/* Dark mode */
[data-bs-theme="dark"] .sponsor--paid {
  background: #0f1e35;
  border-color: rgba(255, 255, 255, 0.08);
}

/* ═══════════════════════════════════════════════════════════════════════════
   HOUSE AD  (.sponsor--house)
   Text-based call-to-action shown when no sponsor image is supplied.
   Shares the navy/gold design language of the quiz teaser.
   ═══════════════════════════════════════════════════════════════════════════ */
.sponsor--house {
  position: relative;
  border-radius: 14px;
  background: linear-gradient(130deg, #0d1b2a 0%, #162843 55%, #1e3659 100%);
  border: 1px solid rgba(192, 154, 82, 0.22);
  box-shadow:
    0 4px 24px rgba(13, 27, 42, 0.18),
    inset 0 0 0 1px rgba(192, 154, 82, 0.08);
  overflow: hidden;
}

/* Radial gold glow — top-right decorative blob */
.sponsor--house::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -50px;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(192, 154, 82, 0.18) 0%,
    transparent 70%
  );
  pointer-events: none;
}

/* "Sponsor this article" eyebrow badge */
.sponsor-house__badge {
  position: absolute;
  top: 0;
  right: 0;
  padding: 4px 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(192, 154, 82, 0.8);
  background: rgba(192, 154, 82, 0.1);
  border-radius: 0 14px 0 8px;
  border-left: 1px solid rgba(192, 154, 82, 0.2);
  border-bottom: 1px solid rgba(192, 154, 82, 0.2);
}

/* Inner flex row */
.sponsor-house__inner {
  display: flex;
  align-items: center;
  gap: clamp(16px, 3vw, 28px);
  padding: clamp(20px, 3.5vw, 30px) clamp(20px, 3.5vw, 32px);
}

/* Icon circle */
.sponsor-house__icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(192, 154, 82, 0.12);
  border: 1px solid rgba(192, 154, 82, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
}
.sponsor-house__icon .material-symbols-sharp {
  font-size: 28px;
  color: #c09a52;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* Text block */
.sponsor-house__content {
  flex: 1;
  min-width: 0;
}

.sponsor-house__heading {
  font-size: clamp(1rem, 2.2vw, 1.2rem);
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 6px;
  line-height: 1.3;
}
.sponsor-house__body {
  font-size: clamp(0.8rem, 1.5vw, 0.875rem);
  color: rgba(228, 234, 240, 0.65);
  margin: 0;
  line-height: 1.6;
  max-width: 56ch;
}

/* CTA button */
.sponsor-house__actions {
  flex-shrink: 0;
}

.sponsor-house__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 11px 24px;
  border-radius: 10px;
  background: #c09a52;
  color: #0d1b2a;
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  box-shadow: 0 2px 12px rgba(192, 154, 82, 0.35);
  transition:
    background 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
}
.sponsor-house__btn .material-symbols-sharp {
  font-size: 16px;
  font-variation-settings:
    "wght" 400,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 20;
  transition: transform 0.18s ease;
}
.sponsor-house__btn:hover {
  background: color-mix(in srgb, #c09a52 80%, #fff 20%);
  color: #0d1b2a;
  box-shadow: 0 4px 18px rgba(192, 154, 82, 0.45);
}
.sponsor-house__btn:hover .material-symbols-sharp {
  transform: translateX(3px);
}

/* Mobile: stack vertically, hide icon */
@media (max-width: 640px) {
  .sponsor-house__inner {
    flex-direction: column;
    align-items: flex-start;
  }
  .sponsor-house__icon {
    display: none;
  }
  .sponsor-house__actions {
    width: 100%;
  }
  .sponsor-house__btn {
    width: 100%;
    justify-content: center;
  }
}
/*=============================
    22. FAQ views exposed filter
===============================*/
#views-exposed-form-faq-faq-accordion .form-select {
  background-image: none !important;
}
#views-exposed-form-faq-faq-accordion .form-select {
  width: 100%;
  height: 3rem !important;
  padding: 0 2.5rem 0 1rem;
  font-size: 1rem;
  line-height: 3rem;
  border: 1px solid var(--bs-border-color);
  border-radius: var(--bs-border-radius-lg);
  background-color: var(--bs-body-bg);
  color: var(--bs-body-color);
  box-shadow: 0 1px 3px rgba(0, 0, 0, 0.06);
  cursor: pointer;
  appearance: none;
  -webkit-appearance: none;
  -moz-appearance: none;
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23343a40' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
  background-repeat: no-repeat;
  background-position: right 1rem center;
  background-size: 16px 12px;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease;
}
#views-exposed-form-faq-faq-accordion .form-select:focus {
  border-color: var(--bs-primary);
  box-shadow: 0 0 0 0.2rem rgba(var(--bs-primary-rgb), 0.2);
  outline: none;
}
[data-bs-theme="dark"] #views-exposed-form-faq-faq-accordion .form-select {
  background-image: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16'%3e%3cpath fill='none' stroke='%23dee2e6' stroke-linecap='round' stroke-linejoin='round' stroke-width='2' d='m2 5 6 6 6-6'/%3e%3c/svg%3e") !important;
}
/*=============================
	23. Author social
===============================*/
.author-social {
  margin: 25px 0;
}
.author-social a {
  text-align: center;
  margin: 0 5px;
}
.colored-social a {
  width: 40px;
  height: 40px;
  line-height: 40px;
  border-radius: 4px;
  background-color: var(--tg-primary-color);
  border: none !important;
  color: #ffffff !important;
}
.colored-social a.facebook {
  background-color: var(--facebook);
}
.colored-social a.google-plus {
  background-color: var(--google);
}
.colored-social a.twitter {
  background-color: var(--twitter);
}
.colored-social a.linkedin {
  background-color: var(--linkedin);
}
.colored-social a.instagram {
  background-color: var(--instagram);
}
.colored-social a.pinterest {
  background-color: var(--pinterest);
}
.colored-social a.dribbble {
  background-color: var(--dribbble);
}
.colored-social a.youtube {
  background-color: var(--youtube);
}
.colored-social a.vimeo {
  background-color: var(--vimeo);
}
.colored-social a.rss {
  background-color: var(--rss);
}
.colored-social a.patreon {
  background-color: var(--patreon);
}
/*=============================
	24. Heading numbering
===============================*/
body {
  counter-reset: h2;
}
.blog-content h1 {
  counter-reset: h2;
}
.blog-content h2 {
  counter-reset: h3;
}
.blog-content h3 {
  counter-reset: h4;
}
.blog-content h4 {
  counter-reset: h5;
}
.blog-content h5 {
  counter-reset: h6;
}
.blog-content h2:before {
  content: counter(h2, decimal) ". ";
  counter-increment: h2;
}
.blog-content h3:before {
  content: counter(h2, decimal) "." counter(h3, decimal) ". ";
  counter-increment: h3;
}
.blog-content h4:before {
  content: counter(h2, decimal) "." counter(h3, decimal) "."
    counter(h4, decimal) ". ";
  counter-increment: h4;
}
.blog-content h5:before {
  content: counter(h2, decimal) "." counter(h3, decimal) "."
    counter(h4, decimal) "." counter(h5, decimal) ". ";
  counter-increment: h5;
}
.blog-content h6:before {
  content: counter(h2, decimal) "." counter(h3, decimal) "."
    counter(h4, decimal) "." counter(h5, decimal) "." counter(h6, decimal) ". ";
  counter-increment: h6;
}
.blog-content li {
  text-align: justify;
}
/*=============================
	25. Prepend / Append styling
===============================*/
.panel {
  padding: 0;
  margin: 4px 0 20px;
  display: block;
  clear: both;
  border: 1px solid var(--tg-border-color);
  border-radius: 6px;
  position: relative; /* anchors the absolutely-positioned .label badge */
}
.panel .label {
  display: inline-block;
  position: absolute;
  top: 0;
  left: 0;
  background: var(--tg-primary-color);
  color: var(--tg-white);
  padding: 3px 10px;
  font-weight: 600;
  text-transform: uppercase;
  font-family: var(--tg-heading-font-family);
  font-size: 11px;
  line-height: 1.6;
  letter-spacing: 0.06em;
  border-radius: 6px 0 6px 0;
}
.panel .body {
  padding: 36px 20px 20px; /* top matches label height so body text clears it */
  text-align: justify;
}
[data-bs-theme="dark"] .panel {
  color: var(--tg-white);
  border-color: rgba(255, 255, 255, 0.12);
}

/* ── Thumb → panel gap ──────────────────────────────────────────────────────
   Zero out every possible margin source on the media block so the panel's
   own 4px top-margin is the only space between them.
   Covers: image articles, video articles (field-video + field wrappers),
   and gallery articles (field-gallery).                                     */
.blog-details-thumb {
  margin-bottom: 0;
}
.blog-details-thumb .field-video,
.blog-details-thumb .field-gallery,
.blog-details-thumb .field-video > .field,
.blog-details-thumb .field-gallery > .field,
.blog-details-thumb .video-embed-field-provider-youtube {
  margin-bottom: 0;
}
.blog-details-thumb img {
  margin-bottom: 0;
}

/* ── [video] shortcode embed ────────────────────────────────────────────── */
.video-embed {
  position: relative;
  width: 100%;
  padding-top: 56.25%; /* 16:9 */
  margin: 1.5rem 0;
  overflow: hidden;
  border-radius: var(--tp-radius, 8px);
}
.video-embed iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

/*=============================
	26. Event Calendar Styling
===============================*/
.fc-view-harness tr {
  background: transparent;
}
.fc-button-group > .fc-button:not(:last-child) {
  margin-right: 3px;
}
.fc .fc-daygrid-week-number {
  background-color: transparent;
}

/* ── FullCalendar dark mode ─────────────────────────────── */
[data-bs-theme="dark"] .fc {
  --fc-border-color: rgba(255, 255, 255, 0.12);
  --fc-page-bg-color: transparent;
  --fc-neutral-bg-color: rgba(255, 255, 255, 0.04);
  --fc-today-bg-color: rgba(192, 154, 82, 0.12);
  --fc-event-bg-color: var(--tg-primary-color);
  --fc-event-border-color: var(--tg-primary-color);
  --fc-button-bg-color: var(--tg-secondary-color);
  --fc-button-border-color: rgba(255, 255, 255, 0.15);
  --fc-button-hover-bg-color: var(--tg-primary-color);
  --fc-button-active-bg-color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .fc .fc-col-header-cell-cushion,
[data-bs-theme="dark"] .fc .fc-daygrid-day-number,
[data-bs-theme="dark"] .fc .fc-toolbar-title,
[data-bs-theme="dark"] .fc .fc-list-event-title a,
[data-bs-theme="dark"] .fc .fc-list-day-text,
[data-bs-theme="dark"] .fc .fc-list-day-side-text {
  color: #e0e6ed;
}
[data-bs-theme="dark"] .fc .fc-list-day-cushion {
  background: #0f1e35;
}

/* ── FullCalendar: no scrollbars, full 24-hour display ────────
   Applied globally (all screen sizes).
   FC sets a JS-calculated pixel height on .fc-view-harness and
   then absolutely positions child layers inside it. Overriding
   those layers to position:relative + height:auto lets the
   calendar grow to its full content height so the page scrolls
   naturally instead of creating an internal calendar scrollbar.
   ─────────────────────────────────────────────────────────── */

/* View harness: release the JS-injected fixed height */
.fc .fc-view-harness {
  height: auto !important;
}

/* Active harness + view: were position:absolute inset:0 */
.fc .fc-view-harness-active,
.fc .fc-view-harness-active > .fc-view {
  position: relative !important;
  height: auto !important;
  inset: auto !important;
}

/* Scroller variants: size to content, no internal scroll */
.fc .fc-scroller-harness,
.fc .fc-scroller-liquid,
.fc .fc-scroller-liquid-absolute {
  position: relative !important;
  height: auto !important;
  inset: auto !important;
  overflow: hidden !important;
}

.fc .fc-scroller {
  height: auto !important;
  overflow: hidden !important;
  scrollbar-width: none;
}
.fc .fc-scroller::-webkit-scrollbar {
  display: none;
}

/* Timegrid slot height — 20px × 48 slots = 960px total.
   Compact enough to scroll through on any screen size. */
.fc .fc-timegrid-slot {
  height: 20px !important;
}

/* ── Mobile-only adjustments ≤ 991px ──────────────────────── */
@media (max-width: 991.98px) {
  /* ── 1. WRAPPER + ROOT ────────────────────────────────────── */
  .fullcalendar--wrapper {
    overflow: hidden !important;
    width: 100%;
  }

  .fullcalendar--wrapper .fc {
    overflow: hidden !important;
    width: 100% !important;
    font-size: 10px;
  }

  /* ── 2. HORIZONTAL FIT (daygrid month/week) ──────────────── */
  .fc .fc-scrollgrid,
  .fc .fc-scrollgrid td,
  .fc .fc-scrollgrid-section,
  .fc .fc-scrollgrid-section > td,
  .fc .fc-col-header,
  .fc .fc-daygrid-body,
  .fc .fc-timegrid-body,
  .fc table {
    width: 100% !important;
    min-width: 0 !important;
    max-width: 100% !important;
  }

  .fc table {
    table-layout: fixed !important;
  }

  .fc col {
    min-width: 0 !important;
    width: auto !important;
  }

  /* ── 3. TOOLBAR ───────────────────────────────────────────── */
  .fc .fc-header-toolbar {
    flex-direction: column !important;
    gap: 6px;
    align-items: stretch;
  }
  .fc .fc-toolbar-chunk {
    display: flex;
    justify-content: center;
    flex-wrap: wrap;
    gap: 4px;
  }
  .fc .fc-toolbar-title {
    font-size: 0.95rem;
    text-align: center;
  }
  .fc .fc-button {
    padding: 3px 8px !important;
    font-size: 11px !important;
  }

  /* ── 4. DAYGRID CELLS ─────────────────────────────────────── */
  .fc .fc-col-header-cell-cushion {
    padding: 2px 1px !important;
    font-size: 9px;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    display: block;
    max-width: 100%;
  }

  .fc .fc-daygrid-day-number {
    padding: 1px 3px;
    font-size: 10px;
  }

  .fc .fc-daygrid-day-frame {
    min-height: 34px !important;
  }

  /* ── 5. DAYGRID EVENTS ────────────────────────────────────── */
  .fc .fc-daygrid-event-harness {
    font-size: 8px;
  }

  .fc .fc-daygrid-event {
    margin: 0 1px 1px;
    padding: 1px 2px;
  }

  .fc .fc-daygrid-event .fc-event-title {
    display: block;
    font-size: 8px;
    line-height: 1.2;
    overflow: hidden;
    white-space: nowrap;
    text-overflow: ellipsis;
    max-width: 100%;
  }

  .fc .fc-daygrid-more-link {
    font-size: 8px;
  }

  /* ── 6. TIMEGRID MOBILE SCALING ───────────────────────────── */
  .fc .fc-timegrid-slot {
    height: 14px !important;
    font-size: 9px;
  }

  .fc .fc-timegrid-slot-label-cushion {
    font-size: 9px;
    padding: 0 2px;
  }

  .fc .fc-timegrid-event .fc-event-title {
    font-size: 9px;
    overflow: hidden;
    white-space: nowrap;
  }

  .fc .fc-timegrid .fc-col-header-cell-cushion {
    font-size: 9px;
    padding: 2px 1px;
  }
}
.tag {
  color: var(--tg-white);
  font-family: var(--tg-heading-font-family);
  font-size: 13px;
  font-weight: 600;
  line-height: normal;
  letter-spacing: 0.78px;
  text-transform: uppercase;
  background: var(--tg-primary-color);
  display: inline-block;
  border-radius: 4px;
  padding: 4px 6px;
  margin: 15px 0;
}
.calendar-link ul {
  list-style-type: none;
  padding-left: 0;
  list-style-position: inside;
}
.calendar-link li {
  display: inline;
}
.calendar-link li:not(:last-child):after {
  content: " | ";
}
/*=============================
	27. Flippy styling
===============================*/
ul.flippy {
  padding-left: 0;
  display: flex;
  justify-content: space-between;
}
ul.flippy li {
  margin: 0;
  padding: 10px;
  display: inline-block;
  width: auto;
  list-style-type: none;
  list-style-image: none;
  background: none;
  white-space: nowrap;
  font-weight: normal;
  text-transform: capitalize;
  font-family: var(--tg-heading-font-family);
  color: var(--tg-primary-color);
  font-style: normal;
  font-size: var(--tg-body-font-size);
  line-height: var(--tg-heading-line-height);
}
ul.flippy li.flippy-next {
  text-align: right;
}
ul.flippy li a {
  color: inherit;
  display: inline;
  padding-bottom: 0;
  -webkit-transition: background-size 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
  transition: background-size 0.8s cubic-bezier(0.25, 0.8, 0.25, 1);
  background-image: -webkit-gradient(
    linear,
    left top,
    left bottom,
    from(currentColor),
    color-stop(98%, currentColor)
  );
  background-image: linear-gradient(
    to bottom,
    currentColor 0%,
    currentColor 98%
  );
  background-size: 0 1px;
  background-repeat: no-repeat;
  background-position: left 100%;
}
ul.flippy li a:hover {
  color: var(--tg-secondary-color);
  text-decoration: underline;
}
ul.flippy li.flippy-first:before {
  content: "\e5dc";
  font-family: "Material Symbols Sharp";
  vertical-align: bottom;
  margin-right: 5px;
}
ul.flippy li.flippy-first {
  float: left;
}
ul.flippy li.flippy-previous:before {
  content: "\e5cb";
  font-family: "Material Symbols Sharp";
  vertical-align: bottom;
  margin-right: 5px;
}
li.flippy-previous {
  float: left;
}
li.flippy-next {
  float: right;
}
ul.flippy li.flippy-next:after {
  content: "\e5cc";
  font-family: "Material Symbols Sharp";
  vertical-align: bottom;
  margin-left: 5px;
}
ul.flippy li.flippy-last {
  float: right;
}
ul.flippy li.flippy-last:after {
  content: "\e5dd";
  font-family: "Material Symbols Sharp";
  vertical-align: bottom;
  margin-left: 5px;
}
.left {
  float: left;
  max-width: 50%;
}
.right {
  float: right;
  max-width: 50%;
}
/*=============================
	28. Figure caption styling
===============================*/
.caption {
  display: table;
  margin-left: auto;
  margin-right: auto;
}
.caption > * {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
}
.caption > figcaption {
  display: table-caption;
  max-width: none;
  caption-side: bottom;
}
.caption > figcaption {
  display: table-caption;
  max-width: none;
  caption-side: bottom;
  text-align: center;
  color: var(--tg-primary-color);
  font-weight: 600;
  margin: 25px 0;
}
/*=============================
	29. Alert styling
===============================*/
.alert-success {
  --bs-alert-color: var(--tg-white);
  --bs-alert-bg: var(--tg-secondary-color);
  --bs-alert-border-color: var(--tg-secondary-color);
}
.alert svg {
  fill: var(--tg-white);
}
/* Remove Bootstrap's black × SVG background */
.btn-close {
  background: none;
  opacity: 1;
}

/* Render × via Material Symbols so colour is CSS-controllable */
.alert-dismissible .btn-close::before {
  font-family: "Material Symbols Sharp";
  content: "\e5cd";
  font-size: 20px;
  line-height: 1;
  color: var(--tg-white);
  display: block;
}

/* Dark mode: keep icon white against the dark alert surface.
   Bootstrap sets --bs-btn-close-filter: invert(1)… in dark mode for its
   masked-SVG close icon — that filter also inverts our colored ::before
   glyph (white → near-black), so it must be neutralised here. */
[data-bs-theme="dark"] .alert-dismissible .btn-close {
  filter: none;
}
[data-bs-theme="dark"] .alert-dismissible .btn-close::before {
  color: rgba(255, 255, 255, 0.85);
}
.placeholder {
  vertical-align: middle;
  cursor: pointer;
  background-color: transparent;
}
.placeholder a {
  cursor: pointer;
  background: none;
  color: var(--tg-white);
}
em .placeholder {
  background: none;
}
.alert {
  --bs-alert-bg: transparent;
  --bs-alert-padding-x: 1rem;
  --bs-alert-padding-y: 1rem;
  --bs-alert-margin-bottom: 1rem;
  --bs-alert-color: inherit;
  --bs-alert-border-color: transparent;
  --bs-alert-border: 1px solid var(--tg-secondary-color);
  --bs-alert-border-radius: 0.375rem;
  position: relative;
  padding: var(--bs-alert-padding-y) var(--bs-alert-padding-x);
  margin-bottom: var(--bs-alert-margin-bottom);
  color: var(--tg-white);
  background-color: var(--tg-secondary-color);
  border: var(--bs-alert-border);
  border-radius: var(--bs-alert-border-radius);
}
/*=============================
	30. RSVP button styling
===============================*/
.post-meta-rsvp .rsvp-reader-trigger {
  appearance: none;
  border: 0;
  background: transparent;
  padding: 0;
  margin: 0;
  color: inherit;
  font: inherit;
  font-weight: inherit;
  line-height: inherit;
  text-decoration: none;
  cursor: pointer;
}
.post-meta-rsvp .rsvp-reader-trigger:hover,
.post-meta-rsvp .rsvp-reader-trigger:focus-visible {
  text-decoration: underline;
}
/*=============================
	31. Glossary page
===============================*/

/* ── Hide the raw table — JS uses it as a data source ── */
.glossary-raw-table {
  display: none !important;
}

/* ── Page header ───────────────────────────────────────── */
.glossary-header {
  background: linear-gradient(
    135deg,
    var(--tg-secondary-color) 0%,
    #0f2035 100%
  );
  padding: 48px 0 56px;
  margin-bottom: 0;
}

.glossary-header__inner {
  max-width: 900px;
  margin: 0 auto;
  padding: 0 24px;
  text-align: center;
}

.glossary-header__title {
  font-family: "Noto Serif", Georgia, serif;
  font-size: clamp(2rem, 5vw, 3.5rem);
  font-weight: 700;
  color: #f0ebe2;
  margin: 0 0 12px;
  letter-spacing: -0.02em;
}

.glossary-header__subtitle {
  font-size: 1.05rem;
  color: rgba(240, 235, 226, 0.7);
  margin: 0 0 32px;
  text-align: center;
}

/* ── Search bar ────────────────────────────────────────── */
.glossary-search {
  position: relative;
  max-width: 520px;
  margin: 0 auto;
}

.glossary-search__icon {
  position: absolute;
  left: 16px;
  top: 50%;
  color: #6b788a;
  font-size: 20px;
  pointer-events: none;
}

.glossary-search__input {
  width: 100%;
  height: 52px;
  padding: 0 48px 0 50px;
  border: 2px solid rgba(192, 154, 82, 0.3);
  border-radius: 12px;
  background: rgba(255, 255, 255, 0.08);
  color: #f0ebe2;
  font-size: 1rem;
  font-family: var(--tg-body-font-family);
  transition:
    border-color 0.2s ease,
    background 0.2s ease;
  -webkit-appearance: none;
}

.glossary-search__input::placeholder {
  color: rgba(240, 235, 226, 0.45);
}
.glossary-search__input:focus {
  outline: none;
  border-color: #c09a52;
  background: rgba(255, 255, 255, 0.12);
}

.glossary-search__clear {
  position: absolute;
  right: 12px;
  top: 50%;
  background: transparent;
  border: none;
  cursor: pointer;
  color: rgba(240, 235, 226, 0.6);
  padding: 4px;
  display: flex;
}

.glossary-search__clear:hover {
  color: #c09a52;
}

/* ── Alphabet nav ─────────────────────────────────────── */
.glossary-alpha-nav {
  padding: 16px 0 8px;
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 8px;
}

.glossary-alpha-nav__inner {
  display: flex;
  flex-wrap: nowrap; /* single line on desktop */
  flex: 1;
  gap: 0; /* let buttons distribute themselves */
  justify-content: space-between; /* equal spacing across full width */
}

.glossary-alpha-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  flex: 1; /* each letter claims equal share of the row */
  min-width: 0;
  height: 32px;
  border-radius: 6px;
  font-size: 13px;
  font-weight: 600;
  font-family: var(--tg-body-font-family);
  letter-spacing: 0.03em;
  text-decoration: none;
  transition:
    background 0.15s ease,
    color 0.15s ease;
  cursor: pointer;
}

a.glossary-alpha-btn {
  color: var(--tg-heading-font-color);
  background: transparent;
}

a.glossary-alpha-btn:hover {
  background: rgba(192, 154, 82, 0.12);
  color: #c09a52;
}

a.glossary-alpha-btn.is-active {
  background: #c09a52;
  color: #0d1b2a;
}

a.glossary-alpha-btn.glossary-alpha-btn--no-results {
  opacity: 0.3;
}

span.glossary-alpha-btn.glossary-alpha-btn--empty {
  color: var(--tg-border-color);
  cursor: default;
}

.glossary-alpha-nav__count {
  font-size: 12px;
  color: var(--tg-icon-color);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Body / sections container ─────────────────────────── */
.glossary-body {
  max-width: 900px;
  margin: 0 auto;
  padding: 40px 24px 80px;
}

/* ── Letter section ─────────────────────────────────────── */
.glossary-section {
  margin-bottom: 48px;
  scroll-margin-top: 80px; /* accounts for sticky nav */
}

.glossary-section__header {
  display: flex;
  align-items: center;
  gap: 16px;
  margin-bottom: 16px;
}

.glossary-section__letter {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 3rem;
  font-weight: 700;
  color: #c09a52;
  line-height: 1;
  width: 56px;
  flex-shrink: 0;
}

.glossary-section__header::after {
  content: "";
  flex: 1;
  height: 2px;
  background: linear-gradient(
    90deg,
    rgba(192, 154, 82, 0.4) 0%,
    transparent 100%
  );
}

/* ── Entry list ─────────────────────────────────────────── */
.glossary-section__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 8px;
}

/* ── Single entry card ──────────────────────────────────── */
.glossary-entry {
  border-radius: 8px;
  transition: background 0.15s ease;
}

.glossary-entry__link {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 12px;
  padding: 12px 16px;
  border: 1px solid transparent;
  border-radius: 8px;
  text-decoration: none;
  transition:
    border-color 0.15s ease,
    background 0.15s ease;
}

.glossary-entry__link:hover {
  background: rgba(192, 154, 82, 0.06);
  border-color: rgba(192, 154, 82, 0.25);
}

.glossary-entry__title {
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--tg-heading-font-color);
  line-height: 1.4;
  flex: 1;
}

.glossary-entry__link:hover .glossary-entry__title {
  color: #c09a52;
}

.glossary-entry__date {
  font-size: 0.75rem;
  color: var(--tg-icon-color);
  white-space: nowrap;
  flex-shrink: 0;
}

/* ── Search results panel (cross-alphabet) ───────────────── */
.glossary-search-panel {
  margin-bottom: 24px;
}

.glossary-search-panel__summary {
  font-size: 0.9rem;
  color: var(--tg-icon-color);
  margin-bottom: 16px;
  padding-bottom: 12px;
  border-bottom: 1px solid var(--tg-border-color);
}

.glossary-search-panel__summary strong {
  color: var(--tg-heading-font-color);
}

.glossary-search-panel__loading {
  font-size: 0.9rem;
  color: var(--tg-icon-color);
  font-style: italic;
}

.glossary-search-panel__empty {
  font-size: 0.9rem;
  color: var(--tg-icon-color);
  padding: 24px 0;
}

/* ── Empty state ─────────────────────────────────────────── */
.glossary-empty {
  text-align: center;
  padding: 60px 24px;
  color: var(--tg-icon-color);
}
.glossary-empty .material-symbols-sharp {
  font-size: 48px;
  display: block;
  margin: 0 auto 16px;
  opacity: 0.4;
}

/* ── Pager ───────────────────────────────────────────────── */
.glossary-pager {
  margin-top: 40px;
}

/* ── Dark mode ───────────────────────────────────────────── */
[data-bs-theme="dark"] .glossary-header {
  background: linear-gradient(135deg, #07101a 0%, #0d1b2a 100%);
}

[data-bs-theme="dark"] .glossary-search__input {
  color: #f0ebe2;
}

/* dark mode alpha nav — no background needed */

[data-bs-theme="dark"] a.glossary-alpha-btn {
  color: #c8d6e5;
}

[data-bs-theme="dark"] .glossary-entry__title {
  color: #e0e6ed;
}

/* ── Mobile responsive ───────────────────────────────────── */
@media (max-width: 767.98px) {
  /* Allow wrapping on narrow screens so letters don't get too small */
  .glossary-alpha-nav__inner {
    flex-wrap: wrap;
    justify-content: flex-start;
    gap: 4px;
  }

  .glossary-alpha-btn {
    flex: 0 0 auto;
    width: 26px;
    height: 26px;
    font-size: 11px;
  }

  .glossary-section__list {
    grid-template-columns: 1fr;
  }

  .glossary-section__letter {
    font-size: 2.2rem;
    width: 44px;
  }

  .glossary-header {
    padding: 32px 0 40px;
  }
}

/*=============================
	32. Klaro cookie consent
===============================*/

/* Klaro persistent privacy toggle — rounded-square to match other icons */
.klaro_toggle_dialog {
  border-radius: 8px !important;
}

/* When inside the FAB, cancel klaro-extend.css's fixed positioning
   so the button sits inline with the other items. */
.corner-fab .klaro_toggle_dialog {
  position: static !important;
  right: auto !important;
  bottom: auto !important;
  margin: 0 !important;
  display: flex !important;
  align-items: center !important;
  justify-content: center !important;
}

/* ── Klaro brand palette — Midnight Navy + Champagne Gold ────────────────
   Override Klaro's CSS custom properties (defined in klaro-override.css)
   so the dialog matches the Think Insights brand without fighting specificity.
   Variables from klaro.min.css (--dark1, --light1 etc.) are also overridden.
   ─────────────────────────────────────────────────────────────────────── */
.klaro {
  /* Primary: champagne gold */
  --klaro-primary-color: #c09a52;

  /* Buttons: gold bg, navy text; hover inverts to navy bg, gold text */
  --klaro-button-bg: #c09a52;
  --klaro-button-text-color: #0d1b2a;
  --klaro-button-border: 2px solid #c09a52;
  --klaro-button-border-radius: 8px;
  --klaro-button-padding: 10px 20px;
  --klaro-button-font-weight: 600;
  --klaro-button-bg-hover: #0d1b2a;
  --klaro-button-text-color-hover: #c09a52;
  --klaro-button-border-hover: 2px solid #c09a52;

  /* Focus ring */
  --klaro-button-focus-outline: 2px solid #c09a52;
  --klaro-button-focus-outline-offset: 2px;

  /* Toggle sliders */
  --klaro-slider-bg: #2a3d52; /* off = muted navy */
  --klaro-slider-bg-active: #c09a52; /* on  = gold */
  --klaro-slider-bg-required: rgba(
    192,
    154,
    82,
    0.6
  ); /* required = muted gold */

  /* Modal surface colours (from klaro.min.css var names) */
  --dark1: #0d1b2a; /* modal background */
  --dark2: #1a2e42; /* borders / section dividers */
  --dark3: #6b788a; /* muted text */
  --light1: #f0ebe2; /* primary text on dark */
  --light2: #8a9bb0; /* secondary / muted text */
  --light3: #6b788a; /* tertiary */
  --white2: #2a3d52; /* toggle track off state */
  --white3: #3a5068; /* slider knob */

  /* Border radius */
  --border-radius: 8px;

  /* Link colour */
  --green1: #c09a52;
  --green2: #b08840;
  --green3: #c09a52;
}

/* Modal overlay backdrop */
.klaro .cookie-modal .cm-bg {
  background: rgba(0, 0, 0, 0.75);
}

/* Modal dialog surface */
.klaro .cookie-modal .cm-modal.cm-klaro {
  background-color: #0d1b2a;
  color: #f0ebe2;
  border-radius: 12px;
  border: 1px solid rgba(192, 154, 82, 0.25);
  box-shadow: 0 20px 60px rgba(0, 0, 0, 0.6);
}

/* Modal header */
.klaro .cookie-modal .cm-modal .cm-header {
  border-bottom-color: rgba(192, 154, 82, 0.2);
}

.klaro .cookie-modal .cm-modal .cm-header h1 {
  color: #f0ebe2;
  font-family: "Noto Serif", Georgia, serif;
  font-size: 1.4em;
}

/* Section dividers */
.klaro .cookie-modal .cm-modal .cm-footer {
  border-top-color: rgba(192, 154, 82, 0.2);
}

/* "Accept all" button (cm-btn-success) → solid gold */
.klaro .cookie-modal .cm-btn.cm-btn-success,
.klaro .context-notice .cm-btn.cm-btn-success,
.klaro .cookie-notice .cm-btn.cm-btn-success {
  background-color: #c09a52;
  color: #0d1b2a;
  border: 2px solid #c09a52;
  border-radius: 8px;
  font-weight: 600;
}

.klaro .cookie-modal .cm-btn.cm-btn-success:hover,
.klaro .cookie-notice .cm-btn.cm-btn-success:hover {
  background-color: #0d1b2a;
  color: #c09a52;
}

/* "Decline" / "Save" button (cm-btn-info / cm-btn-decline) → outlined */
.klaro .cookie-modal .cm-btn.cm-btn-info,
.klaro .context-notice .cm-btn.cm-btn-info,
.klaro .cookie-notice .cm-btn.cm-btn-info,
.klaro .cookie-modal .cm-btn.cm-btn-decline,
.klaro .context-notice .cm-btn.cm-btn-decline,
.klaro .cookie-notice .cm-btn.cm-btn-decline {
  background-color: transparent;
  color: #c09a52;
  border: 2px solid rgba(192, 154, 82, 0.5);
  border-radius: 8px;
  font-weight: 600;
}

.klaro .cookie-modal .cm-btn.cm-btn-info:hover,
.klaro .cookie-modal .cm-btn.cm-btn-decline:hover,
.klaro .cookie-notice .cm-btn.cm-btn-info:hover,
.klaro .cookie-notice .cm-btn.cm-btn-decline:hover {
  border-color: #c09a52;
  background: rgba(192, 154, 82, 0.08);
}

/* Close button */
.klaro .cookie-modal .cm-modal .hide svg {
  stroke: #f0ebe2;
}

/* Cookie notice banner (shown before accepting) */
.klaro .cookie-notice:not(.cookie-modal-notice) {
  background-color: #0d1b2a;
  border: 1px solid rgba(192, 154, 82, 0.25);
  border-radius: 12px;
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.4);
}

.klaro .cookie-modal .cm-list-label .slider,
.klaro .context-notice .cm-list-label .slider,
.klaro .cookie-notice .cm-list-label .slider {
  background-color: #2a3d52;
  box-shadow: none;
}

.klaro .cookie-modal .cm-list-input:checked + .cm-list-label .slider,
.klaro .context-notice .cm-list-input:checked + .cm-list-label .slider,
.klaro .cookie-notice .cm-list-input:checked + .cm-list-label .slider {
  background-color: #c09a52;
  border: none;
}

.klaro .cookie-modal .cm-list-input.required:checked + .cm-list-label .slider,
.klaro .context-notice .cm-list-input.required:checked + .cm-list-label .slider,
.klaro .cookie-notice .cm-list-input.required:checked + .cm-list-label .slider {
  background-color: rgba(192, 154, 82, 0.55);
  border: none;
}

/* Slider knob */
.klaro .cookie-modal .cm-list-label .slider::before,
.klaro .context-notice .cm-list-label .slider::before,
.klaro .cookie-notice .cm-list-label .slider::before {
  background-color: #f0ebe2;
}

/* Service labels & descriptions */
.klaro .cookie-modal .cm-list-title,
.klaro .context-notice .cm-list-title,
.klaro .cookie-notice .cm-list-title {
  color: #f0ebe2;
}

.klaro .cookie-modal .cm-list-description,
.klaro .context-notice .cm-list-description,
.klaro .cookie-notice .cm-list-description {
  color: #8a9bb0;
}

/* Links */
.klaro .cookie-modal a,
.klaro .context-notice a,
.klaro .cookie-notice a {
  color: #c09a52;
  text-decoration: underline;
}

.klaro .cookie-modal a:hover,
.klaro .context-notice a:hover,
.klaro .cookie-notice a:hover {
  color: #d4b06a;
}
/*=============================
	33. Social sharing buttons
===============================*/
.social-sharing-buttons {
  display: flex;
  align-items: center;
  flex-wrap: wrap;
  gap: 6px;
  margin: 0;
}

/* Individual button: thin circular container */
.social-sharing-buttons a,
.social-sharing-buttons-button {
  display: flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  border: none;
  background: transparent;
  margin: 0;
  flex-shrink: 0;
  transition:
    border-color 0.2s ease,
    background 0.2s ease;
}

.social-sharing-buttons a:hover,
.social-sharing-buttons-button:hover {
  border-color: var(--tg-primary-color);
  background: rgba(192, 154, 82, 0.09);
}

/* SVG sits flush inside the circle */
.social-sharing-buttons a svg,
.social-sharing-buttons-button svg {
  display: block;
  flex-shrink: 0;
}

/* ── Dark mode ─────────────────────────────────────────────
   External SVG sprite paths have no fill attribute — they
   render black. CSS fill/color cannot reach into the <use>
   shadow DOM. filter is the only lever available.
   brightness(0) = force everything black,
   invert(1)     = flip to white.                           */
[data-bs-theme="dark"] .social-sharing-buttons a,
[data-bs-theme="dark"] .social-sharing-buttons-button {
  border-color: none;
}

[data-bs-theme="dark"] .social-sharing-buttons a svg,
[data-bs-theme="dark"] .social-sharing-buttons-button svg {
  filter: brightness(0) invert(1);
  opacity: 0.75;
}

[data-bs-theme="dark"] .social-sharing-buttons a:hover,
[data-bs-theme="dark"] .social-sharing-buttons-button:hover {
  border-color: var(--tg-primary-color);
  background: rgba(192, 154, 82, 0.12);
}

/* On hover: push filter toward gold and restore full opacity */
[data-bs-theme="dark"] .social-sharing-buttons a:hover svg,
[data-bs-theme="dark"] .social-sharing-buttons-button:hover svg {
  filter: brightness(0) invert(1) sepia(1) saturate(3) hue-rotate(5deg);
  opacity: 1;
}
#block-zaira-contribute {
  margin-bottom: 50px;
}
[data-bs-theme="dark"] .webform-element-description {
  color: #fff;
}
[data-bs-theme="dark"] .captcha {
  color: #fff;
}
[data-bs-theme="dark"] .blog-post-meta .list-wrap li,
[data-bs-theme="dark"] .blog-post-meta .list-wrap li a {
  color: #fff;
}
/*=============================
	34. Logos grid
===============================*/
/* Section wrapper */
.logos-section {
  padding: 60px 0 70px;
  background: var(--tg-section-bg, #f8f9fa);
}
[data-bs-theme="dark"] .logos-section {
  background: rgba(255, 255, 255, 0.03);
}

/* Individual logo card */
.logos-grid .categories-item {
  display: flex;
  align-items: center;
  justify-content: center;
  min-height: 96px;
  padding: 1rem 1.25rem;
  background: var(--tg-white, #fff);
  border: 1px solid var(--tg-border-color, #e8e8e8);
  border-radius: 10px;
  transition:
    border-color 0.2s ease,
    box-shadow 0.2s ease,
    background 0.2s ease;
}
[data-bs-theme="dark"] .logos-grid .categories-item {
  background: #111e2d;
  border-color: rgba(255, 255, 255, 0.08);
}
.logos-grid .categories-item:hover {
  border-color: var(--tg-primary-color, #c09a52);
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.08);
}

/* Logo image — grayscale by default, full colour on hover */
.logos-grid .categories-item img {
  display: block;
  max-width: 100%;
  height: auto;
  max-height: 64px;
  object-fit: contain;
  filter: grayscale(100%) opacity(0.55);
  transition: filter 0.3s ease;
}
.logos-grid .categories-item:hover img {
  filter: grayscale(0%) opacity(1);
}

/* Dark mode: invert SVGs + restore on hover */
[data-bs-theme="dark"] .logos-grid .categories-item img[src$=".svg"] {
  filter: grayscale(100%) opacity(0.45) brightness(0) invert(1);
}
[data-bs-theme="dark"] .logos-grid .categories-item:hover img[src$=".svg"] {
  filter: grayscale(0%) opacity(1) brightness(0) invert(1);
}
/*=============================
	35. Books in sidebar styling
===============================*/
.book {
  text-align: center;
  margin-bottom: 0;
}

.book a {
  display: block;
}

.book img {
  display: block;
  width: 100%;
  max-width: 280px;
  margin: 0 auto;
  border-radius: 4px;
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.12);
  transition:
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.book img:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.18);
}

/* ── Mobile: add vertical gap between stacked books ── */
@media (max-width: 767.98px) {
  .book {
    margin-bottom: 28px;
  }

  /* Last book: no trailing gap */
  .col-12:last-child .book {
    margin-bottom: 0;
  }

  .book img {
    max-width: 220px; /* slightly narrower on narrow screens */
  }
}

/* ── Dark mode ── */
[data-bs-theme="dark"] .book img {
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.45);
}

[data-bs-theme="dark"] .book img:hover {
  box-shadow: 0 8px 32px rgba(0, 0, 0, 0.6);
}
/*=============================
	36. Shop product page
===============================*/
.field--type-commerce-price,
.field--name-title {
  color: var(--tg-primary-color);
}
.product-teaser {
  border: 1px solid var(--tg-secondary-color);
  padding: 35px;
}
/*=============================
	37. Mark outbound links with an icon
===============================*/
a:not(
    :is(
      [href*="thinkinsights.net"],
      [href*="thinkinsights.test"],
      [href^="#"],
      [href^="?"],
      [href^="/"],
      :not([href])
    )
  )::after {
  content: "\f8ce";
  font-family: "Material Symbols Sharp";
  font-size: 0.65em;
  line-height: 1;
  vertical-align: super;
  display: inline;
  color: var(--tg-icon-color);
  margin-left: 2px;
}
/* Do not show icon for social media links */
a:has(> i:only-child)::after,
a:has(> svg:only-child)::after {
  display: none;
}
/* Suppress icon for links that are icons (fa classes on the <a> itself) */
a[class*="fa-"]::after {
  display: none;
}
/* Suppress icon for links whose only direct child is <em> wrapping an <i> or <svg> */
a:has(> em:only-child > i:only-child)::after,
a:has(> em:only-child > svg:only-child)::after {
  display: none;
}
.book a::after {
  display: none;
}

/*=============================
    38. Blog post meta — author byline + co-authors
===============================*/

/* .meta-authors sits inline with the other strip items */
.blog-post-meta .list-wrap .meta-authors {
  text-transform: none;
  letter-spacing: 0;
  font-size: 13px;
  font-weight: 500;
  color: var(--tg-body-font-color);
  gap: 8px;
}

/* ── Primary author chip: avatar + name ────────────────────────── */
.author-chip {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  color: var(--tg-body-font-color);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  line-height: 1;
  white-space: nowrap;
}
.author-chip:hover,
.author-chip:focus-visible {
  color: var(--tg-primary-color);
  outline: none;
}

/* ── Initial-letter avatar circle ──────────────────────────────── */
.author-avatar {
  flex-shrink: 0;
  width: 22px;
  height: 22px;
  border-radius: 50%;
  background: var(--tg-primary-color);
  color: #fff;
  font-size: 10px;
  font-weight: 700;
  font-family: var(--tg-heading-font-family);
  display: inline-flex;
  align-items: center;
  justify-content: center;
  text-transform: uppercase;
  letter-spacing: 0;
  user-select: none;
}
.author-avatar--co {
  background: var(--tg-secondary-color);
}
/* Photo avatar: crop to circle, suppress the letter-circle background */
img.author-avatar,
.author-avatar--img {
  object-fit: cover;
  background: transparent;
  display: inline-block;
  vertical-align: middle;
  color: transparent; /* hide alt text during load */
}

/* ── Co-authors <details> wrapper ──────────────────────────────── */
.co-authors {
  position: relative;
  display: inline-flex;
  align-items: center;
}

/* ── Trigger (summary) — stacked circles + "+N" pill ───────────── */
.co-authors__trigger {
  display: inline-flex;
  align-items: center;
  gap: 2px;
  list-style: none; /* Firefox: remove disclosure triangle  */
  cursor: pointer;
  padding: 3px 8px 3px 4px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.06);
  border: 1px solid transparent;
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
  line-height: 1;
  user-select: none;
}
/* Remove native disclosure arrow in all browsers */
.co-authors__trigger::-webkit-details-marker {
  display: none;
}
.co-authors__trigger::marker {
  display: none;
}

.co-authors__trigger:hover,
.co-authors[open] .co-authors__trigger {
  background: rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.14);
  outline: none;
}

/* Stacked avatars with GitHub-style overlap */
.co-authors__trigger .author-avatar {
  width: 20px;
  height: 20px;
  font-size: 9px;
  border: 2px solid #fff;
  margin-left: -5px;
}
.co-authors__trigger .author-avatar:first-child {
  margin-left: 0;
}

.co-authors__count {
  margin-left: 5px;
  font-size: 11px;
  font-weight: 600;
  color: var(--tg-icon-color);
  text-transform: none;
  letter-spacing: 0;
}

/* ── Apple-style dropdown panel ────────────────────────────────────
   Always in the DOM (display: block overrides UA display:none).
   Visibility/opacity drive the show/hide so CSS transitions fire.  */
.co-authors__panel {
  display: block; /* override <details> UA display:none */
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 210px;
  z-index: 300;

  /* Apple frosted-glass surface */
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  padding: 8px 6px;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.05),
    0 12px 30px rgba(0, 0, 0, 0.12);

  /* Hidden state */
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform-origin: top left;
  /* Delay visibility:hidden until after fade-out */
  transition:
    opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0.18s;
}

/* Shown when <details> has the open attribute */
.co-authors[open] .co-authors__panel {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition:
    opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0s;
}

/* Section heading inside panel */
.co-authors__heading {
  margin: 0 0 4px;
  padding: 2px 10px 6px;
  font-size: 10px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.08em;
  color: var(--tg-icon-color);
  border-bottom: 1px solid rgba(0, 0, 0, 0.07);
}

.co-author-row {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 8px 10px;
  border-radius: 8px;
  color: var(--tg-body-font-color);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  transition: background 0.12s ease;
}
.co-author-row:hover,
.co-author-row:focus-visible {
  background: rgba(0, 0, 0, 0.05);
  color: var(--tg-primary-color);
  outline: none;
}
.co-author-row__name {
  line-height: 1.2;
}

/* ── blog-details-thumb: block the anchor wrapper ───────────────────
   The field formatter wraps <img> in an <a> (display:inline by default).
   width:100% on <img> then resolves against the inline anchor width
   (= natural image width) rather than the container, breaking full-width
   display.  Making <a> a block element restores the correct reference.  */
.blog-details-thumb a {
  display: block;
}

/* ── Term page: image fills banner container without crop ───────────
   .banner-post-thumb-five fixes img to 180 px + object-fit:cover.
   In the weekly-post-four horizontal layout the thumb is a fixed-width
   column; let the image fill that width at its natural aspect ratio.  */
.weekly-post-item.weekly-post-four .banner-post-thumb-five {
  width: 440px;
  flex: 0 0 auto;
  aspect-ratio: 16 / 9; /* height derives from width — no fixed px needed */
}

/* Chain of Views wrappers between the container and <img> must fill
   the full container height so height:100% on <img> has a reference. */
.weekly-post-item.weekly-post-four .banner-post-thumb-five .views-field,
.weekly-post-item.weekly-post-four .banner-post-thumb-five .field-content,
.weekly-post-item.weekly-post-four .banner-post-thumb-five a {
  display: block;
  height: 100%;
}

.weekly-post-item.weekly-post-four .banner-post-thumb-five img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover; /* source (img_4col = 16:9) matches container → zero crop */
}

/* ── Dark mode — author byline ──────────────────────────────────────── */
[data-bs-theme="dark"] .blog-post-meta .meta-authors,
[data-bs-theme="dark"] .author-chip,
[data-bs-theme="dark"] .co-author-row {
  color: #d4dbe4;
}
[data-bs-theme="dark"] .author-chip:hover,
[data-bs-theme="dark"] .co-author-row:hover {
  color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .co-authors__trigger {
  background: rgba(255, 255, 255, 0.09);
  border-color: transparent;
}
[data-bs-theme="dark"] .co-authors__trigger:hover,
[data-bs-theme="dark"] .co-authors[open] .co-authors__trigger {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.18);
}
[data-bs-theme="dark"] .co-authors__trigger .author-avatar {
  border-color: #0d1b2a;
}
[data-bs-theme="dark"] .co-authors__count {
  color: #8a9ab0;
}
[data-bs-theme="dark"] .co-authors__panel {
  background: rgba(30, 38, 53, 0.95);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.25),
    0 12px 30px rgba(0, 0, 0, 0.45);
}
[data-bs-theme="dark"] .co-authors__heading {
  border-bottom-color: rgba(255, 255, 255, 0.08);
  color: #6a7a8f;
}
[data-bs-theme="dark"] .co-author-row:hover {
  background: rgba(255, 255, 255, 0.07);
}

/*=============================
    39. Sticky social share rail
===============================*/

/* ── Sticky social share — fixed left rail ──────────────────────────
   Formula keeps exactly 40 px between the bar's right edge and the
   left edge of .blog-details-content, matching the sidebar gap:

     content-left  = (100vw - 1320px) / 2   ← container left
                   + 12px                    ← Bootstrap col gutter
     bar-right     = content-left - 40px
     bar-left      = bar-right    - 44px     ← bar width
                   = (100vw - 1320px) / 2 - 96px

   Minimum viewport for bar to stay on-screen: ≥ 1500px
   (at 1500px: container-left = 90px → bar-left = 90 - 96 = –6px,
   so we bump the breakpoint to 1520px where bar-left = 4px).       */

.sticky-social-share {
  display: none;
  width: 44px;
}

@media (min-width: 1520px) {
  .sticky-social-share {
    display: block;
    position: fixed;
    left: calc((100vw - 1320px) / 2 - 96px);
    top: 50%;
    z-index: 90;
  }
}

/* Sticky rail: vertical column layout */
.sticky-social-share .social-sharing-buttons {
  flex-direction: column;
  justify-content: center;
}

/* Slightly smaller buttons on the compact sidebar rail */
.sticky-social-share .social-sharing-buttons a,
.sticky-social-share .social-sharing-buttons-button {
  width: 24px;
  height: 24px;
  margin: 0 0 40px 0;
}

/*=============================
    40. Post-meta overflow popover
===============================*/

/* ── Post-meta overflow popover (⋯ button) ──────────────────────────
   Comments, Reader, Summarize, PDF tucked behind a <details> trigger.
   Identical Apple-style panel treatment as the co-authors dropdown.   */

.meta-overflow-wrap {
  position: relative;
}

/* Trigger button */
.meta-overflow__trigger {
  display: inline-flex;
  align-items: center;
  list-style: none;
  cursor: pointer;
  padding: 3px 6px;
  border-radius: 8px;
  background: rgba(0, 0, 0, 0.06);
  border: 1px solid transparent;
  transition:
    background 0.15s ease,
    border-color 0.15s ease;
  line-height: 1;
  user-select: none;
}
.meta-overflow__trigger::-webkit-details-marker {
  display: none;
}
.meta-overflow__trigger::marker {
  display: none;
}

.meta-overflow__trigger:hover,
.meta-overflow[open] .meta-overflow__trigger {
  background: rgba(0, 0, 0, 0.1);
  border-color: rgba(0, 0, 0, 0.14);
  outline: none;
}

.meta-overflow__trigger .material-symbols-sharp {
  font-size: 18px;
  line-height: 1;
  color: var(--tg-icon-color);
  font-variation-settings:
    "wght" 400,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* Panel — same frosted-glass treatment as co-authors */
.meta-overflow__panel {
  display: block;
  position: absolute;
  top: calc(100% + 8px);
  left: 0;
  min-width: 180px;
  z-index: 300;
  background: rgba(255, 255, 255, 0.92);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  padding: 6px 4px;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.05),
    0 12px 30px rgba(0, 0, 0, 0.12);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform-origin: top left;
  transition:
    opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0.18s;
}

.meta-overflow[open] .meta-overflow__panel {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition:
    opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0s;
}

/* Each item row */
.meta-overflow__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: 8px;
  color: var(--tg-body-font-color);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  white-space: nowrap;
  transition: background 0.12s ease;
}
.meta-overflow__item:hover,
.meta-overflow__item:focus-visible {
  background: rgba(0, 0, 0, 0.05);
  color: var(--tg-primary-color);
  outline: none;
}
.meta-overflow__item .material-symbols-sharp {
  font-size: 16px;
  line-height: 1;
  flex-shrink: 0;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* Dark mode */
[data-bs-theme="dark"] .meta-overflow__trigger {
  background: rgba(255, 255, 255, 0.09);
  border-color: transparent;
}
[data-bs-theme="dark"] .meta-overflow__trigger:hover,
[data-bs-theme="dark"] .meta-overflow[open] .meta-overflow__trigger {
  background: rgba(255, 255, 255, 0.15);
  border-color: rgba(255, 255, 255, 0.18);
}
[data-bs-theme="dark"] .meta-overflow__panel {
  background: rgba(30, 38, 53, 0.95);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.25),
    0 12px 30px rgba(0, 0, 0, 0.45);
}
[data-bs-theme="dark"] .meta-overflow__item {
  color: #d4dbe4;
}
[data-bs-theme="dark"] .meta-overflow__item:hover {
  background: rgba(255, 255, 255, 0.07);
  color: var(--tg-primary-color);
}

/*=============================
    41. Global search — nav icon + overlay
===============================*/

/* ── Search icon button (nav bar) ─────────────────────── */
.tbm-search-btn {
  position: relative;
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  color: var(--tbm-link-color, #0d1b2a);
  flex-shrink: 0;
  transition:
    background var(--tbm-transition, 0.28s ease),
    color var(--tbm-transition, 0.28s ease);
}
.tbm-search-btn:hover,
.tbm-search-btn:focus-visible,
.tbm-search-btn[aria-expanded="true"] {
  background: rgba(0, 0, 0, 0.06);
  color: var(--tg-primary-color);
  outline: none;
}
.tbm-search-btn .material-symbols-sharp {
  font-size: 22px;
  line-height: 1;
  font-variation-settings:
    "wght" 400,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  transition: font-variation-settings 0.18s ease;
}
.tbm-search-btn[aria-expanded="true"] .material-symbols-sharp {
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

/* ── Overlay shell ─────────────────────────────────────── */
.search-overlay {
  position: fixed;
  inset: 0;
  z-index: 1070; /* above nav (1060) */
  display: flex;
  align-items: flex-start;
  justify-content: center;
  padding-top: clamp(60px, 12vh, 140px);
  /* Hidden state — driven by JS toggling .is-open */
  pointer-events: none;
}

/* Backdrop: frosted glass */
.search-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, 0.45);
  backdrop-filter: blur(6px);
  -webkit-backdrop-filter: blur(6px);
  opacity: 0;
  transition: opacity 0.22s ease;
}

.search-overlay__panel {
  position: relative;
  z-index: 1;
  width: min(640px, calc(100vw - 32px));
  opacity: 0;
  transition:
    transform 0.26s cubic-bezier(0.34, 1.56, 0.64, 1),
    opacity 0.22s ease;
}

/* Open state */
.search-overlay.is-open {
  pointer-events: auto;
}
.search-overlay.is-open .search-overlay__backdrop {
  opacity: 1;
}
.search-overlay.is-open .search-overlay__panel {
  opacity: 1;
}

/* ── Search field ──────────────────────────────────────── */
.search-overlay__field {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 0 18px;
  background: #f7f5f2;
  border-radius: 16px;
  box-shadow:
    0 4px 20px rgba(13, 27, 42, 0.1),
    0 1px 4px rgba(13, 27, 42, 0.06);
}
.search-overlay__icon {
  font-size: 24px;
  color: var(--tg-icon-color, #6b788a);
  flex-shrink: 0;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}
.search-overlay__input {
  flex: 1;
  border: none;
  outline: none;
  background: transparent;
  font-size: clamp(18px, 2.5vw, 22px);
  font-weight: 500;
  color: var(--tg-black, #0d1b2a);
  padding: 18px 0;
  caret-color: var(--tg-primary-color);
  /* Remove browser default search decorations */
  -webkit-appearance: none;
  appearance: none;
}
.search-overlay__input::placeholder {
  color: var(--tg-icon-color, #9aa0a8);
  font-weight: 400;
}
/* Hide browser's ✕ clear button */
.search-overlay__input::-webkit-search-cancel-button {
  display: none;
}
.search-overlay__input::-ms-clear {
  display: none;
}

.search-overlay__clear {
  background: transparent;
  border: none;
  cursor: pointer;
  padding: 6px;
  color: var(--tg-icon-color);
  border-radius: 50%;
  display: inline-flex;
  align-items: center;
  transition:
    background 0.15s ease,
    color 0.15s ease;
}
.search-overlay__clear:hover {
  background: rgba(0, 0, 0, 0.07);
  color: var(--tg-black);
}
.search-overlay__clear .material-symbols-sharp {
  font-size: 20px;
}

/* ── Results list ──────────────────────────────────────── */
.search-overlay__results {
  list-style: none;
  margin: 8px 0 0;
  padding: 0;
  background: #f7f5f2;
  border-radius: 14px;
  box-shadow:
    0 4px 20px rgba(13, 27, 42, 0.1),
    0 1px 4px rgba(13, 27, 42, 0.05);
  overflow: hidden;
  /* Hidden until JS adds .has-results */
  display: none;
}
.search-overlay__results.has-results {
  display: block;
}

.search-result__link {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 12px 16px;
  color: var(--tg-body-font-color);
  text-decoration: none;
  font-size: 15px;
  font-weight: 500;
  transition: background 0.12s ease;
}
.search-result__icon {
  font-size: 20px;
  color: var(--tg-icon-color);
  flex-shrink: 0;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}
.search-result__label {
  flex: 1;
}
.search-result__arrow {
  font-size: 16px;
  color: var(--tg-icon-color);
  opacity: 0;
  transition: opacity 0.12s ease;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* Hover / keyboard focus */
.search-result[aria-selected="true"] .search-result__link,
.search-result__link:hover,
.search-result__link:focus-visible {
  background: rgba(192, 154, 82, 0.07);
  outline: none;
}
.search-result[aria-selected="true"] .search-result__icon,
.search-result__link:hover .search-result__icon {
  color: var(--tg-primary-color);
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}
.search-result[aria-selected="true"] .search-result__arrow,
.search-result__link:hover .search-result__arrow {
  opacity: 1;
}

/* Separator between regular results and "View all" */
.search-result--all {
  border-top: 1px solid rgba(0, 0, 0, 0.07);
}
.search-result--all .search-result__link {
  color: var(--tg-primary-color);
  font-weight: 600;
}
.search-result--all .search-result__link:hover {
  background: rgba(0, 0, 0, 0.04);
}

/* Empty state */
.search-result--empty .search-result__link {
  color: var(--tg-icon-color);
  cursor: default;
}

/* Keyword highlight inside results */
.search-highlight {
  background: transparent;
  color: var(--tg-primary-color);
  font-weight: 700;
}

/* ── Hint bar ──────────────────────────────────────────── */
.search-overlay__hint {
  margin: 10px 4px 0;
  font-size: 12px;
  color: rgba(255, 255, 255, 0.7);
  text-align: center;
  letter-spacing: 0.02em;
}
.search-overlay__hint kbd {
  display: inline-block;
  padding: 1px 6px;
  background: rgba(255, 255, 255, 0.15);
  border: 1px solid rgba(255, 255, 255, 0.25);
  border-radius: 4px;
  font-family: inherit;
  font-size: 11px;
}

/* ── Dark mode — search overlay ─────────────────────────── */
[data-bs-theme="dark"] .search-overlay__field,
[data-bs-theme="dark"] .search-overlay__results {
  background: #111e2d;
  box-shadow: 0 4px 20px rgba(0, 0, 0, 0.4);
}
[data-bs-theme="dark"] .search-overlay__input {
  color: #e4eaf0;
}
[data-bs-theme="dark"] .search-result__link {
  color: #d4dbe4;
}
[data-bs-theme="dark"] .tbm-search-btn {
  color: var(--tbm-link-color, #e4eaf0);
}
[data-bs-theme="dark"] .tbm-search-btn:hover {
  background: rgba(255, 255, 255, 0.1);
}

/* ── Mobile: full-screen overlay ─────────────────────────── */
@media (max-width: 575.98px) {
  .search-overlay {
    padding-top: 0;
    align-items: stretch;
  }
  .search-overlay__panel {
    width: 100%;
    height: 100%;
    display: flex;
    flex-direction: column;
    padding: env(safe-area-inset-top, 16px) 16px 16px;
    border-radius: 0;
  }
  .search-overlay__field {
    border-radius: 12px;
    margin-top: 16px;
  }
  .search-overlay__results {
    flex: 1;
    overflow-y: auto;
    border-radius: 12px;
  }
}

/*=============================
    42. Search results page (/search?keys=…)
===============================*/

/* ── Banner: "Results for 'query'" + count ────────── */
.search-results-banner {
  display: flex;
  align-items: baseline;
  gap: 12px;
  flex-wrap: wrap;
  margin-bottom: 24px;
  padding-bottom: 16px;
  border-bottom: 2px solid var(--tg-gray, #e5e7eb);
}

.search-results-banner__query {
  display: flex;
  align-items: center;
  gap: 8px;
  font-size: 22px;
  font-weight: 700;
  color: var(--tg-heading-font-color);
  line-height: 1.2;
}

.search-results-banner__query .material-symbols-sharp {
  font-size: 28px;
  color: var(--tg-primary-color);
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

.search-results-banner__count {
  font-size: 13px;
  font-weight: 500;
  color: var(--tg-icon-color);
  margin-left: auto;
  white-space: nowrap;
}

/* ── Re-search exposed form ───────────────────────── */
.search-results-form {
  margin-bottom: 30px;
}

/* Hide the "Fulltext search" label */
.search-results-form .form-item label {
  display: none;
}

/* Bootstrap Barrio renders the exposed form as div.d-flex.flex-wrap inside
   the <form>. Override flex-wrap so items stay on one line, and remove the
   mb-3 gap the child divs add vertically. */
.search-results-form form > div {
  flex-wrap: nowrap !important;
  gap: 10px;
  align-items: stretch;
  width: 100%;
}

/* Input wrapper (.js-form-item) grows to fill all space left by the button */
.search-results-form form > div > .js-form-item {
  flex: 1 1 0;
  min-width: 0;
  margin: 0 !important;
}

/* Button wrapper (.form-actions) stays as wide as its content */
.search-results-form form > div > .form-actions {
  flex-shrink: 0;
  margin: 0 !important;
}

.search-results-form input[type="text"],
.search-results-form input[type="search"] {
  width: 100%;
  height: 48px;
  padding: 0 18px;
  border: 2px solid var(--tg-gray, #e5e7eb);
  border-radius: 10px;
  font-size: 15px;
  color: var(--tg-heading-font-color);
  background: var(--tg-white, #fff);
  transition:
    border-color 0.18s ease,
    box-shadow 0.18s ease;
  outline: none;
}

.search-results-form input[type="text"]:focus,
.search-results-form input[type="search"]:focus {
  border-color: var(--tg-primary-color);
  box-shadow: 0 0 0 3px rgba(var(--tg-primary-color-rgb, 229, 57, 53), 0.12);
}

.search-results-form input[type="submit"] {
  height: 48px;
  padding: 0 24px;
  background: var(--tg-primary-color);
  color: #fff;
  border: none;
  border-radius: 10px;
  font-size: 14px;
  font-weight: 600;
  cursor: pointer;
  width: auto !important; /* override .form-control width:100% */
  white-space: nowrap;
  transition:
    background 0.18s ease,
    transform 0.12s ease;
}

.search-results-form input[type="submit"]:hover {
  background: color-mix(in srgb, var(--tg-primary-color) 85%, #000);
}

/* ── Result list ──────────────────────────────────── */
.search-results-list {
  display: flex;
  flex-direction: column;
  gap: 0;
}

.search-result-item {
  border-bottom: 1px solid var(--tg-gray, #e5e7eb);
  padding: 24px 0;
}

.search-result-item:first-child {
  padding-top: 0;
}

.search-result-item:last-child {
  border-bottom: none;
}

/* ── Individual result card ───────────────────────── */
.search-result-card {
  display: flex;
  flex-direction: column;
  gap: 8px;
}

/* Category badge */
.search-result-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
}

.search-result-card__category.post-tag {
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: var(--tg-primary-color);
  background: color-mix(in srgb, var(--tg-primary-color) 10%, transparent);
  padding: 3px 10px;
  border-radius: 20px;
  display: inline-block;
  line-height: 1.6;
  margin: 0;
}

.search-result-card__title {
  font-size: 18px;
  font-weight: 700;
  margin: 0;
  line-height: 1.35;
}

.search-result-card__title a {
  color: var(--tg-heading-font-color);
  text-decoration: none;
  transition: color 0.18s ease;
}

.search-result-card__title a:hover {
  color: var(--tg-primary-color);
}

/* Excerpt — Search API injects <strong> for highlighted terms */
.search-result-card__excerpt {
  font-size: 14px;
  line-height: 1.65;
  color: var(--tg-body-font-color);
  margin: 0;
}

.search-result-card__excerpt strong,
.search-result-card__excerpt mark {
  background: color-mix(in srgb, var(--tg-primary-color) 15%, transparent);
  color: var(--tg-heading-font-color);
  font-weight: 600;
  padding: 1px 2px;
  border-radius: 3px;
}

/* ── Empty state ──────────────────────────────────── */
.search-results-empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 48px 24px;
  text-align: center;
  color: var(--tg-icon-color);
}

.search-results-empty .material-symbols-sharp {
  font-size: 48px;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 48;
}

/* ── Pager ────────────────────────────────────────── */
.search-results-pager {
  margin-top: 32px;
  display: flex;
  justify-content: center;
}

/* ── Dark mode — search results page ────────────────── */
[data-bs-theme="dark"] .search-results-banner {
  border-bottom-color: rgba(255, 255, 255, 0.1);
}
[data-bs-theme="dark"] .search-result-item {
  border-bottom-color: rgba(255, 255, 255, 0.08);
}
[data-bs-theme="dark"] .search-results-form input[type="text"],
[data-bs-theme="dark"] .search-results-form input[type="search"] {
  background: #0f1e35;
  border-color: rgba(255, 255, 255, 0.12);
  color: #e0e6ed;
}
[data-bs-theme="dark"] .search-results-form input[type="text"]:focus,
[data-bs-theme="dark"] .search-results-form input[type="search"]:focus {
  border-color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .search-result-card__title a {
  color: #e0e6ed;
}
[data-bs-theme="dark"] .search-result-card__excerpt {
  color: #9aaabb;
}
[data-bs-theme="dark"] .search-result-card__excerpt strong,
[data-bs-theme="dark"] .search-result-card__excerpt mark {
  background: color-mix(in srgb, var(--tg-primary-color) 25%, transparent);
  color: #e0e6ed;
}

/* ── Responsive — search results ──────────────────────── */
@media (max-width: 767.98px) {
  .search-results-banner__query {
    font-size: 18px;
  }
  .search-result-card__title {
    font-size: 16px;
  }
  .search-result-item {
    padding: 18px 0;
  }
}

/*=============================
    43. Body content tables (Bootstrap Barrio override)
===============================*/

/* =========================================================
   TABLE — override Bootstrap Barrio table.css interference
   Barrio targets bare tr / td / th globally with grey row
   backgrounds, dark header fills, and white cell borders.
   Content tables in Drupal body fields have no .table class
   so Bootstrap-scoped rules in style.css don't reach them.
   These rules re-assert the minimalist design on all
   processed-text and article-body tables.
   ========================================================= */

.text-formatted table,
.blog-details-content table {
  border-collapse: collapse;
  width: 100%;
  margin-bottom: 1.5rem;
}

/* Transparent rows — kills Barrio's tr / tr.odd fills */
.text-formatted table tr,
.blog-details-content table tr {
  background: transparent !important;
}

/* All cells: bottom border only */
.text-formatted table td,
.text-formatted table th,
.blog-details-content table td,
.blog-details-content table th {
  background: transparent !important;
  color: var(--tg-body-font-color);
  border: none !important;
  border-bottom: 1px solid var(--tg-border-color) !important;
  padding: 10px 14px;
  font-size: calc(var(--tg-body-font-size) - 1px);
  vertical-align: top;
}

/* Header cells: gold accent underline, small-caps label */
.text-formatted table th,
.blog-details-content table th {
  border-bottom: 2px solid var(--tg-primary-color) !important;
  color: var(--tg-heading-font-color) !important;
  font-size: 11px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.07em;
}

/* Last body row: remove trailing border */
.text-formatted table tbody tr:last-child td,
.blog-details-content table tbody tr:last-child td {
  border-bottom: 1px solid var(--tg-border-color) !important;
}

/* ── Dark mode — body content tables ── */
[data-bs-theme="dark"] .text-formatted table td,
[data-bs-theme="dark"] .text-formatted table th,
[data-bs-theme="dark"] .blog-details-content table td,
[data-bs-theme="dark"] .blog-details-content table th {
  border-bottom-color: rgba(255, 255, 255, 0.1) !important;
  color: #c8d6e5;
}

[data-bs-theme="dark"] .text-formatted table th,
[data-bs-theme="dark"] .blog-details-content table th {
  border-bottom-color: var(--tg-primary-color) !important;
  color: #e0e8f0 !important;
}

[data-bs-theme="dark"] .text-formatted table tbody tr:last-child td,
[data-bs-theme="dark"] .blog-details-content table tbody tr:last-child td {
  border-bottom: 1px solid rgba(255, 255, 255, 0.1) !important;
}

/*=============================
    44. Weekly-post-four — responsive card layout
===============================*/

/* ═══════════════════════════════════════════════════════════
   WEEKLY-POST-FOUR — article card responsive layout

   Actual DOM inside .banner-post-thumb-five (confirmed):
     <a href="...">            ← display:inline by default
       <img width="400" height="225">
     </a>
   No .field wrappers — Barrio's image-formatter renders a
   bare <a><img></a>. The inline <a> expands to the img's
   400px intrinsic width, making the flex item 400px wide.

   FIX: make the <a> block-level + width:100% so it fills
   the thumb container; the img then fills the <a>.
   ═══════════════════════════════════════════════════════════ */

/* ── BASE — covers all viewports including iPad 13" (1366px) ──
   Uses position:absolute on the <a> to fill the container
   exactly — bypasses all intrinsic-size / percentage issues.
   The container needs an explicit height for this to work.
   ─────────────────────────────────────────────────────────── */

.weekly-post-item.weekly-post-four .banner-post-thumb-five {
  position: relative; /* already set in style.css; restated for clarity */
  flex: 0 0 260px;
  width: 260px;
  height: 190px; /* explicit height — required for absolute child */
  overflow: hidden;
}

/* Absolutely fill the container — immune to intrinsic image size */
.weekly-post-item.weekly-post-four .banner-post-thumb-five > a {
  position: absolute;
  inset: 0;
  display: block;
}

/* Image fills the absolute <a> exactly */
.weekly-post-item.weekly-post-four .banner-post-thumb-five img {
  display: block;
  width: 100% !important;
  height: 100% !important;
  object-fit: cover;
  object-position: center;
  margin: 0;
}

/* Content: pin to top, fill remaining flex space */
.weekly-post-item.weekly-post-four .weekly-post-content {
  flex: 1;
  min-width: 0;
  justify-content: flex-start !important;
  align-items: flex-start;
}

.weekly-post-item.weekly-post-four .blog-post-meta .list-wrap {
  justify-content: flex-start !important;
  flex-wrap: wrap;
  gap: 6px 12px;
}

/* ── 1. PORTRAIT ≤ 991px ─────────────────────────────────────
   Stack: full-width image banner above content.
   ─────────────────────────────────────────────────────────── */
@media (max-width: 991.98px) and (orientation: portrait) {
  .weekly-post-item.weekly-post-four {
    flex-direction: column !important;
    gap: 0 !important;
  }

  .weekly-post-item.weekly-post-four .banner-post-thumb-five {
    flex: none !important;
    width: 100% !important;
    height: 200px !important;
    margin-bottom: 14px;
  }

  .weekly-post-item.weekly-post-four .weekly-post-content {
    width: 100%;
    padding: 0;
  }

  .weekly-post-item.weekly-post-four .weekly-post-content .post-title {
    font-size: 18px;
    line-height: 1.35;
    margin-bottom: 8px;
  }

  .weekly-post-item.weekly-post-four .weekly-post-content > p {
    font-size: 15px;
    line-height: 1.65;
    margin-bottom: 12px;
  }
}

/* ── 2. LANDSCAPE phones ≤ 991px ─────────────────────────────
   Two-column: 200×150px thumb. Covers iPhones in landscape
   (iPhone 14 = 844px, Pro Max = 932px).
   ─────────────────────────────────────────────────────────── */
@media (max-width: 991.98px) and (orientation: landscape) {
  .weekly-post-item.weekly-post-four {
    flex-direction: row !important;
    align-items: flex-start;
    gap: 16px !important;
  }

  .weekly-post-item.weekly-post-four .banner-post-thumb-five {
    flex: 0 0 200px !important;
    width: 200px !important;
    height: 150px !important;
  }

  .weekly-post-item.weekly-post-four .weekly-post-content .post-title {
    font-size: 16px;
    line-height: 1.3;
    margin-bottom: 6px;
  }

  .weekly-post-item.weekly-post-four .weekly-post-content > p {
    font-size: 13px;
    line-height: 1.55;
    margin-bottom: 8px;
  }
}

/* ── 3. TABLET 992–1199px (iPad Air/Pro 11" landscape) ────────
   Two-column: 220×165px thumb.
   ─────────────────────────────────────────────────────────── */
@media (min-width: 992px) and (max-width: 1199.98px) {
  .weekly-post-item.weekly-post-four {
    flex-direction: row;
    align-items: flex-start;
    gap: 20px;
  }

  .weekly-post-item.weekly-post-four .banner-post-thumb-five {
    flex: 0 0 220px;
    width: 220px;
    height: 165px;
  }

  .weekly-post-item.weekly-post-four .weekly-post-content {
    flex: 1;
    min-width: 0;
  }
}

/*=============================
    45. Categories mobile overflow fix
===============================*/

/* =========================================================
   CATEGORIES — mobile overflow fix
   .categories-item has a fixed width: 190px with no mobile
   override, causing horizontal overflow on narrow viewports.
   Note: overflow:hidden has been merged into .categories-area
   (section 13) above.
   ========================================================= */

/* Make the fixed-width item fluid on small screens */
@media (max-width: 575.98px) {
  .categories-item {
    width: calc(50vw - 32px); /* two per row, minus container padding */
    max-width: 190px;
  }

  /* Reduce the oversized gutter on narrow viewports */
  .categories-item-wrap-two .row {
    --bs-gutter-x: 16px;
  }

  /* Shorter image on narrow screens to avoid overflow */
  .categories-img-two img {
    height: 130px;
  }
}

@media (max-width: 375px) {
  /* Single column on very narrow devices */
  .categories-item {
    width: calc(100vw - 64px);
  }
}

/*=============================
    46. Mobile nav — hamburger + icon row
===============================*/

/* =========================================================
   MOBILE NAV — hamburger + cart + search in a horizontal row
   ========================================================= */

/* The nav is already a block; make it flex so the three
   icon-buttons sit side-by-side on one line.              */
nav.tbm--mobile {
  display: flex;
  flex-direction: row;
  align-items: center;
  flex-wrap: wrap; /* lets .tbm-collapse drop to its own row */
}

/* Hamburger button — push it to the far left */
nav.tbm--mobile > .tbm-button {
  order: 1;
  margin-right: auto; /* pushes cart + search to the right */
  margin-top: 0;
  margin-bottom: 0;
  align-self: center;
  vertical-align: middle;
}

/* Account icon */
nav.tbm--mobile > .tbm-user-menu {
  order: 2;
  flex-shrink: 0;
}

/* Cart icon */
nav.tbm--mobile > .cart-flyout {
  order: 3;
  flex-shrink: 0;
}

/* =========================================
   COMMERCE CART FLYOUT — Zaira redesign
   Overrides the module's module.css with
   brand-consistent, polished styles.
   ========================================= */

/* ── Panel dimensions & slide animation ─────────────────────────────────── */
#cart-offcanvas.cart-offcanvas.cart-offcanvas--right {
  width: 420px;
  max-width: 100vw;
  height: 100dvh;
  display: flex;
  flex-direction: column;
  background: var(--tg-white, #fff);
  box-shadow: -6px 0 40px rgba(13, 27, 42, 0.18);
  z-index: 1080;
  border-left: 1px solid var(--tg-border-color, #e2ddd7);
  /* Override the module's translate — use same transform axis but extend */
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.16, 1, 0.3, 1);
  visibility: hidden;
}
#cart-offcanvas.cart-offcanvas--right.is-open {
  transform: translateX(0);
  visibility: visible;
}
#cart-offcanvas.cart-offcanvas--right.is-closed {
  transform: translateX(100%);
  visibility: hidden;
  box-shadow: none;
}
/* Specificity must match-or-beat #cart-offcanvas.cart-offcanvas.cart-offcanvas--right
   (1 id + 2 classes) — otherwise the light-mode background wins and the panel
   stays white in dark mode while its children render light-on-white. */
[data-bs-theme="dark"] #cart-offcanvas.cart-offcanvas.cart-offcanvas--right {
  background: #111e2d;
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: -6px 0 40px rgba(0, 0, 0, 0.5);
}

/* ── Backdrop ────────────────────────────────────────────────────────────── */
#cart-offcanvas-bg.cart-offcanvas-bg {
  z-index: 1079;
  transition:
    background-color 0.32s ease,
    visibility 0.32s;
}

/* ── Header ──────────────────────────────────────────────────────────────── */
.zaira-flyout__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  padding: 1.125rem 1.25rem;
  background: var(--tg-secondary-color, #0d1b2a);
  flex-shrink: 0;
  gap: 0.75rem;
}
.zaira-flyout__header-left {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  min-width: 0;
}
.zaira-flyout__header-icon {
  font-size: 22px;
  color: var(--tg-primary-color, #c09a52);
  flex-shrink: 0;
  font-variation-settings: "FILL" 1;
}
.zaira-flyout__header-title {
  font-size: 1rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0;
  letter-spacing: -0.01em;
}
.zaira-flyout__header-badge {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 20px;
  height: 20px;
  padding: 0 5px;
  border-radius: 999px;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 800;
  line-height: 1;
  flex-shrink: 0;
}
/* Close button — keep .cart--cart-offcanvas__close hidden for structure; style the button */
.cart--cart-offcanvas__close {
  display: contents;
}
.zaira-flyout__close-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 36px;
  height: 36px;
  flex-shrink: 0;
  background: rgba(255, 255, 255, 0.1);
  border: 1px solid rgba(255, 255, 255, 0.18);
  border-radius: 8px;
  color: rgba(255, 255, 255, 0.85);
  cursor: pointer;
  transition:
    background 0.18s ease,
    color 0.18s ease;
  padding: 0;
}
.zaira-flyout__close-btn:hover {
  background: rgba(255, 255, 255, 0.2);
  color: #fff;
}
.zaira-flyout__close-btn .material-symbols-sharp {
  font-size: 20px;
}

/* ── Scrollable body ─────────────────────────────────────────────────────── */
.zaira-flyout__body {
  flex: 1;
  overflow-y: auto;
  overscroll-behavior: contain;
  padding: 0.5rem 0;
}

/* ── Item cards ──────────────────────────────────────────────────────────── */
.zaira-cart-items-list {
  padding: 0 1rem;
}

.zaira-cart-item {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 0.875rem;
  padding: 1rem 0;
  border-bottom: 1px solid var(--tg-border-color, #e2ddd7);
}
.zaira-cart-item:last-of-type {
  border-bottom: none;
}
[data-bs-theme="dark"] .zaira-cart-item {
  border-color: rgba(255, 255, 255, 0.08);
}

/* Product info */
.zaira-cart-item__info {
  flex: 1;
  min-width: 0;
}
.zaira-cart-item__title {
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--tg-heading-font-color, #0d1b2a);
  line-height: 1.35;
  margin: 0 0 0.25rem;
  word-break: break-word;
}
[data-bs-theme="dark"] .zaira-cart-item__title {
  color: #e4eaf0;
}
.zaira-cart-item__price {
  font-size: 0.875rem;
  font-weight: 700;
  color: var(--tg-primary-color, #c09a52);
  margin: 0;
}

/* Controls group */
.zaira-cart-item__actions {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  flex-shrink: 0;
}

/* Quantity input */
.zaira-cart-item__qty-wrap {
  display: flex;
  align-items: center;
}
.zaira-cart-item__qty {
  width: 52px;
  height: 36px;
  border: 1.5px solid var(--tg-border-color, #e2ddd7);
  border-radius: 8px;
  text-align: center;
  font-size: 0.875rem;
  font-weight: 600;
  color: var(--tg-heading-font-color, #0d1b2a);
  background: var(--tg-white, #fff);
  padding: 0 4px;
  transition: border-color 0.18s ease;
  -moz-appearance: textfield;
}
.zaira-cart-item__qty::-webkit-inner-spin-button,
.zaira-cart-item__qty::-webkit-outer-spin-button {
  -webkit-appearance: none;
}
.zaira-cart-item__qty:focus {
  outline: none;
  border-color: var(--tg-primary-color, #c09a52);
}
[data-bs-theme="dark"] .zaira-cart-item__qty {
  background: rgba(255, 255, 255, 0.06);
  border-color: rgba(255, 255, 255, 0.15);
  color: #e4eaf0;
}

/* Remove button */
.cart-block--offcanvas-cart-table__remove {
  display: contents;
}
.zaira-cart-item__remove {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 32px;
  height: 32px;
  border: 1px solid var(--tg-border-color, #e2ddd7);
  border-radius: 8px;
  background: transparent;
  color: var(--tg-icon-color, #6b788a);
  cursor: pointer;
  padding: 0;
  transition:
    background 0.18s ease,
    border-color 0.18s ease,
    color 0.18s ease;
}
.zaira-cart-item__remove:hover {
  background: rgba(220, 38, 38, 0.08);
  border-color: rgba(220, 38, 38, 0.3);
  color: #dc2626;
}
.zaira-cart-item__remove .material-symbols-sharp {
  font-size: 18px;
}
[data-bs-theme="dark"] .zaira-cart-item__remove {
  border-color: rgba(255, 255, 255, 0.15);
  color: #8a97a6;
}
[data-bs-theme="dark"] .zaira-cart-item__remove:hover {
  background: rgba(220, 38, 38, 0.15);
  border-color: rgba(220, 38, 38, 0.4);
  color: #f87171;
}

/* Locked quantity label */
.zaira-cart-item__qty-locked {
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--tg-icon-color, #6b788a);
  white-space: nowrap;
}
[data-bs-theme="dark"] .zaira-cart-item__qty-locked {
  color: #8a97a6;
}

/* Update cart button */
.zaira-cart-update-row {
  padding: 0.625rem 1rem 0.75rem;
  border-top: 1px solid var(--tg-border-color, #e2ddd7);
}
[data-bs-theme="dark"] .zaira-cart-update-row {
  border-color: rgba(255, 255, 255, 0.08);
}
.zaira-cart-update-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 600;
  color: var(--tg-icon-color, #6b788a);
  background: transparent;
  border: 1px solid var(--tg-border-color, #e2ddd7);
  border-radius: 8px;
  padding: 0.4rem 0.875rem;
  cursor: pointer;
  transition:
    background 0.18s ease,
    color 0.18s ease;
}
.zaira-cart-update-btn:hover {
  background: rgba(0, 0, 0, 0.04);
  color: var(--tg-heading-font-color, #0d1b2a);
}
.zaira-cart-update-btn .material-symbols-sharp {
  font-size: 16px;
}
[data-bs-theme="dark"] .zaira-cart-update-btn {
  color: #c8d0da;
  border-color: rgba(255, 255, 255, 0.15);
}
[data-bs-theme="dark"] .zaira-cart-update-btn:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #e4eaf0;
}

/* ── Sticky footer with CTA links ─────────────────────────────────────────── */
.zaira-flyout__footer {
  flex-shrink: 0;
  padding: 1rem 1.25rem;
  background: var(--tg-white, #fff);
  border-top: 1px solid var(--tg-border-color, #e2ddd7);
  box-shadow: 0 -4px 16px rgba(13, 27, 42, 0.06);
}
[data-bs-theme="dark"] .zaira-flyout__footer {
  background: #111e2d;
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow: 0 -4px 16px rgba(0, 0, 0, 0.3);
}

/* Style the links injected by Commerce (View cart + Checkout) */
.zaira-flyout__links {
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.zaira-flyout__links a,
.zaira-flyout__links .button {
  display: block;
  text-align: center;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  font-size: 0.9375rem;
  font-weight: 700;
  text-decoration: none;
  transition:
    background 0.2s ease,
    color 0.2s ease,
    box-shadow 0.2s ease;
  line-height: 1.2;
}
/* First link → primary CTA (Checkout) */
.zaira-flyout__links a:first-child {
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  box-shadow: 0 2px 10px rgba(192, 154, 82, 0.28);
}
.zaira-flyout__links a:first-child:hover {
  background: color-mix(
    in srgb,
    var(--tg-primary-color, #c09a52) 80%,
    #000 20%
  );
  box-shadow: 0 4px 16px rgba(192, 154, 82, 0.38);
}
/* Second link → ghost/secondary (View cart) */
.zaira-flyout__links a:last-child:not(:first-child) {
  background: transparent;
  color: var(--tg-body-font-color, #3d4a56);
  border: 1.5px solid var(--tg-border-color, #e2ddd7);
}
.zaira-flyout__links a:last-child:not(:first-child):hover {
  background: rgba(0, 0, 0, 0.04);
  border-color: var(--tg-icon-color, #6b788a);
}
[data-bs-theme="dark"] .zaira-flyout__links a:last-child:not(:first-child) {
  color: #c8d0da;
  border-color: rgba(255, 255, 255, 0.15);
}

/* ── Empty state ─────────────────────────────────────────────────────────── */
.zaira-flyout__empty {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  text-align: center;
  padding: 3rem 2rem;
  flex: 1;
}
.zaira-flyout__empty-icon {
  font-size: 56px;
  color: var(--tg-border-color, #e2ddd7);
  margin-bottom: 1.25rem;
  font-variation-settings: "FILL" 0;
}
.zaira-flyout__empty-title {
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--tg-heading-font-color, #0d1b2a);
  margin: 0 0 0.5rem;
}
[data-bs-theme="dark"] .zaira-flyout__empty-title {
  color: #e4eaf0;
}
.zaira-flyout__empty-body {
  font-size: 0.875rem;
  color: var(--tg-icon-color, #6b788a);
  margin: 0 0 1.5rem;
  max-width: 28ch;
  line-height: 1.55;
}
[data-bs-theme="dark"] .zaira-flyout__empty-body {
  color: #8a97a6;
}
[data-bs-theme="dark"] .zaira-flyout__empty-icon {
  color: rgba(255, 255, 255, 0.18);
}
.zaira-flyout__empty-cta {
  display: inline-flex;
  align-items: center;
  padding: 0.625rem 1.5rem;
  background: var(--tg-secondary-color, #0d1b2a);
  color: #fff;
  border-radius: 8px;
  font-size: 0.875rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.18s ease;
}
[data-bs-theme="dark"] .zaira-flyout__empty-cta {
  /* --tg-secondary-color (#0D1B2A) is nearly indistinguishable from the
     panel's dark background (#111e2d) — switch to the gold accent so the
     CTA still reads as a button. */
  background: var(--tg-primary-color, #c09a52);
  color: #0d1b2a;
}
[data-bs-theme="dark"] .zaira-flyout__empty-cta:hover {
  background: color-mix(
    in srgb,
    var(--tg-primary-color, #c09a52) 85%,
    #fff 15%
  );
}
.zaira-flyout__empty-cta:hover {
  background: color-mix(
    in srgb,
    var(--tg-secondary-color, #0d1b2a) 80%,
    #fff 20%
  );
  color: #fff;
}

/* Accessibility icon — matches desktop position (after cart) */
nav.tbm--mobile > .tbm-a11y-btn {
  order: 4;
  flex-shrink: 0;
}

/* Search icon */
nav.tbm--mobile > .tbm-search-btn {
  order: 5;
  flex-shrink: 0;
}

/* Menu drawer spans the full width below the icon row */
nav.tbm--mobile > .tbm-collapse {
  order: 6;
  flex-basis: 100%;
  width: 100%;
}

/*=============================
    47. Shop styles (product listing, cart, checkout)
===============================*/

/* =========================================
   SHOP PRODUCT LISTING  (path-shop / view-shop)
   ─ Bootstrap 5 card-based product grid
========================================= */

/* ── Design tokens ──────────────────────────────────────────────── */
.view-shop {
  --shop-radius: 16px;
  --shop-shadow: 0 4px 20px rgba(15, 23, 42, 0.08);
  --shop-surface: #ffffff;
  --shop-surface-img: #f5f3f0; /* warm off-white behind image */
  --shop-title: var(--tg-black, #0d1b2a);
  --shop-title-hover: var(--tg-primary-color, #c09a52);
}

/* ── Card shell ─────────────────────────────────────────────────── */
.view-shop .product-card__inner {
  background: var(--shop-surface);
  border-radius: var(--shop-radius) !important;
  box-shadow: var(--shop-shadow);
  overflow: hidden; /* clip image to card corners */
}

/* ── Image link + wrapper ───────────────────────────────────────── */
.view-shop .product-card__image-link {
  display: block;
}

.view-shop .product-card__image-wrap {
  background: var(--shop-surface-img);
}

/* Make the Drupal-rendered field fill its ratio box */
.view-shop .product-card__image-wrap .field,
.view-shop .product-card__image-wrap .field__item,
.view-shop .product-card__image-wrap .image-formatter {
  display: block;
  width: 100%;
  height: 100%;
}

.view-shop .product-card__image-wrap img {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
}

/* ── Card body ──────────────────────────────────────────────────── */
.view-shop .product-card__body {
  padding: 20px 22px 22px;
  gap: 12px;
}

/* ── Title ──────────────────────────────────────────────────────── */
.view-shop .product-card__title {
  margin: 0;
  font-size: 1.1rem;
  font-weight: 700;
  line-height: 1.3;
}

/* Remove the default Commerce title coloring from style.css
   (.field--name-title { color: var(--tg-primary-color) }) — we want
   the title in body-text dark, with hover accent on the link only. */
.view-shop .product-card__title .field--name-title,
.view-shop .product-card__title .field__item {
  color: var(--shop-title) !important;
}

.view-shop .product-card__title-link {
  color: var(--shop-title);
  text-decoration: none;
  transition: color var(--shop-transition);
}

.view-shop .product-card__title-link:hover,
.view-shop .product-card__title-link:focus-visible {
  color: var(--shop-title-hover);
}

/* ── CTA button ─────────────────────────────────────────────────── */
/* Visual styling (colour, shape) comes from the site-wide .btn in
   style.css.  We only add two overrides:
   1. Structural: stop the button stretching to full card width.
   2. Suppress the ::before liquid-fill circle animation — it is a
      200 × 200 % coral sphere that slides up from below the button
      on hover (800 ms).  The card already has its own hover treatment;
      the combined effect is jarring.  The button still changes colour
      (coral → navy) via the normal .btn:hover background transition. */
.view-shop .product-card__cta {
  align-self: flex-start;
}

.view-shop .product-card__cta::before {
  display: none;
}

/* ── Ensure card-img-top wrapper takes up
      the rounded top correctly ─────────────────────────────────── */
.view-shop .product-card__image-wrap.ratio {
  border-radius: var(--shop-radius) var(--shop-radius) 0 0;
  overflow: hidden;
}

/* ── Grid gap: handled by Bootstrap g-4 on parent .row in
      views-view.html.twig (.view-content.row) — add explicit gap
      so it also applies if the theme resets it ──────────────────── */
.view-shop .view-content.row {
  --bs-gutter-x: 1.5rem; /* 24px */
  --bs-gutter-y: 1.5rem;
}

/* ── Spacing around the view ────────────────────────────────────── */
.path-shop .view-shop {
  margin-top: 8px;
}

/* ── Dark mode ──────────────────────────────────────────────────── */
body.dark-mode .view-shop {
  --shop-surface: #1e2635;
  --shop-surface-img: #262f40;
  --shop-shadow: 0 4px 20px rgba(0, 0, 0, 0.28);
  --shop-shadow-hover: 0 12px 40px rgba(0, 0, 0, 0.4);
  --shop-title: #e8ecf0;
}

/* ── Mobile refinements ─────────────────────────────────────────── */
@media (max-width: 575.98px) {
  .view-shop .product-card__body {
    padding: 16px 18px 18px;
  }

  .view-shop .product-card__title {
    font-size: 1rem;
  }
}

/* Generic caption element (used on shop/content pages) */
caption {
  text-align: center;
  font-size: small;
}

/* =========================================
   COMMERCE CART
========================================= */

.path-cart .view-commerce-cart-form form {
  --cart-surface: #ffffff;
  --cart-surface-soft: #faf6f0;
  --cart-border: #ece4d8;
  --cart-border-strong: #dfd3c4;
  --cart-text: #18202a;
  --cart-text-muted: #6e7681;
  --cart-accent: #c44d3b;
  --cart-accent-dark: #a93d2f;
  --cart-accent-soft: #fff3ee;
  --cart-shadow: 0 18px 50px rgba(15, 23, 42, 0.06);
  --cart-radius-lg: 24px;
  --cart-radius-md: 18px;
  --cart-radius-sm: 12px;
}

/* Item cards */
.path-cart .view-commerce-cart-form .cart-cards {
  display: grid;
  gap: 24px;
  margin-bottom: 28px;
}

.path-cart .view-commerce-cart-form .cart-card {
  display: grid;
  grid-template-columns: minmax(0, 1fr) 300px;
  gap: 28px;
  align-items: stretch;
  background: var(--cart-surface);
  border: 1px solid var(--cart-border);
  border-radius: var(--cart-radius-lg);
  padding: 28px;
  box-shadow: var(--cart-shadow);
}

.path-cart .view-commerce-cart-form .cart-card__main {
  min-width: 0;
}

.path-cart
  .view-commerce-cart-form
  .cart-card__product
  .commerce-product-variation {
  display: flex;
  align-items: flex-start;
  gap: 22px;
}

.path-cart
  .view-commerce-cart-form
  .cart-card__product
  .field--name-field-featured {
  margin: 0;
  flex: 0 0 136px;
}

.path-cart
  .view-commerce-cart-form
  .cart-card__product
  .field--name-field-featured
  img {
  width: 136px;
  height: 136px;
  object-fit: cover;
  border-radius: 18px;
  border: 1px solid var(--cart-border);
  background: #f7f3ee;
}

.path-cart .view-commerce-cart-form .cart-card__product .field--name-title,
.path-cart
  .view-commerce-cart-form
  .cart-card__product
  .commerce-product-variation__title,
.path-cart .view-commerce-cart-form .cart-card__product h2,
.path-cart .view-commerce-cart-form .cart-card__product h3,
.path-cart .view-commerce-cart-form .cart-card__product h4 {
  margin: 0 0 8px;
  color: var(--cart-text);
  font-size: 28px;
  line-height: 1.15;
  font-weight: 700;
}

.path-cart .view-commerce-cart-form .cart-card__product .field {
  margin-top: 10px;
}

.path-cart .view-commerce-cart-form .cart-card__product .field__label,
.path-cart
  .view-commerce-cart-form
  .cart-card__product
  .field--label-above
  > .field__label,
.path-cart
  .view-commerce-cart-form
  .cart-card__product
  .field--label-inline
  > .field__label {
  color: var(--cart-text-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.path-cart .view-commerce-cart-form .cart-card__side {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  gap: 18px;
  padding: 22px;
  background: var(--cart-surface-soft);
  border: 1px solid var(--cart-border);
  border-radius: var(--cart-radius-md);
}

.path-cart .view-commerce-cart-form .cart-card__meta {
  display: grid;
  gap: 16px;
}

.path-cart .view-commerce-cart-form .cart-card__meta-block {
  display: grid;
  gap: 6px;
}

.path-cart .view-commerce-cart-form .cart-card__label {
  display: block;
  color: var(--cart-text-muted);
  font-size: 12px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.05em;
  text-transform: uppercase;
}

.path-cart .view-commerce-cart-form .cart-card__value {
  color: var(--cart-text);
  font-size: 20px;
  font-weight: 700;
  line-height: 1.2;
}

.path-cart
  .view-commerce-cart-form
  .cart-card__meta-block--total
  .cart-card__value {
  font-size: 30px;
  color: var(--tg-black);
}

.path-cart .view-commerce-cart-form .cart-card__meta-block--qty .js-form-item,
.path-cart .view-commerce-cart-form .cart-card__meta-block--qty .form-item {
  margin: 0;
}

.path-cart
  .view-commerce-cart-form
  .cart-card__meta-block--qty
  input[type="number"],
.path-cart .view-commerce-cart-form .cart-card__meta-block--qty .form-number {
  width: 96px;
  min-height: 48px;
  border-radius: 12px;
  border: 1px solid var(--cart-border-strong);
  background: #fff;
  color: var(--cart-text);
  text-align: center;
  font-weight: 600;
  padding: 8px 12px;
  box-shadow: none;
}

.path-cart .view-commerce-cart-form .cart-card__actions .form-submit,
.path-cart .view-commerce-cart-form .cart-card__actions input[type="submit"] {
  width: 100%;
  min-height: 48px;
  padding: 12px 16px;
  border-radius: 12px;
  background: var(--tg-primary-color);
  color: var(--tg-white);
  border: 1px solid var(--tg-primary-color);
  font-weight: 700;
  transition: all 0.2s ease;
}

.path-cart .view-commerce-cart-form .cart-card__actions .form-submit:hover,
.path-cart
  .view-commerce-cart-form
  .cart-card__actions
  input[type="submit"]:hover {
  background: var(--tg-secondary-color);
  border-color: var(--tg-secondary-color);
  color: var(--tg-white);
}

/* Summary section styled from existing markup */
.path-cart
  .view-commerce-cart-form
  form
  > [data-drupal-selector="order-total-summary"],
.path-cart .view-commerce-cart-form form > #edit-actions,
.path-cart .view-commerce-cart-form form > .paypal-buttons-container {
  max-width: 420px;
  margin-left: auto;
  margin-right: 0;
}

.path-cart
  .view-commerce-cart-form
  form
  > [data-drupal-selector="order-total-summary"] {
  background: var(--cart-surface);
  border: 1px solid var(--cart-border);
  border-bottom: 0;
  border-radius: var(--cart-radius-lg) var(--cart-radius-lg) 0 0;
  padding: 28px 28px 18px;
  box-shadow: var(--cart-shadow);
}

.path-cart
  .view-commerce-cart-form
  form
  > [data-drupal-selector="order-total-summary"]::before {
  content: "Order summary";
  display: block;
  margin-bottom: 18px;
  font-size: 26px;
  line-height: 1.15;
  font-weight: 700;
  color: var(--cart-text);
}

.path-cart .view-commerce-cart-form .order-total-summary {
  display: grid;
  gap: 10px;
}

.path-cart .view-commerce-cart-form .order-total-line {
  display: flex;
  justify-content: space-between;
  align-items: center;
  gap: 16px;
  padding: 6px 0;
}

.path-cart .view-commerce-cart-form .order-total-line-label {
  color: var(--cart-text-muted);
  font-size: 15px;
  font-weight: 600;
}

.path-cart .view-commerce-cart-form .order-total-line-value {
  color: var(--cart-text);
  font-size: 17px;
  font-weight: 700;
}

.path-cart .view-commerce-cart-form .order-total-line:last-child {
  margin-top: 6px;
  padding-top: 16px;
  border-top: 1px solid var(--cart-border);
}

.path-cart
  .view-commerce-cart-form
  .order-total-line:last-child
  .order-total-line-label,
.path-cart
  .view-commerce-cart-form
  .order-total-line:last-child
  .order-total-line-value {
  font-size: 18px;
  font-weight: 800;
  color: var(--cart-text);
}

.path-cart .view-commerce-cart-form form > #edit-actions {
  display: grid;
  gap: 12px;
  background: var(--cart-surface);
  border-left: 1px solid var(--cart-border);
  border-right: 1px solid var(--cart-border);
  border-bottom: 0;
  border-top: 1px solid var(--cart-border);
  padding: 18px 28px;
  margin-top: 0;
  margin-bottom: 0;
  box-shadow: var(--cart-shadow);
}

.path-cart .view-commerce-cart-form form > #edit-actions .form-submit,
.path-cart .view-commerce-cart-form form > #edit-actions input[type="submit"] {
  width: 100%;
  min-height: 52px;
  padding: 14px 18px;
  border-radius: 14px;
  border: 1px solid transparent;
  font-size: 15px;
  font-weight: 700;
  line-height: 1.2;
  box-shadow: none;
  transition: all 0.2s ease;
}

/* Update cart */
.path-cart .view-commerce-cart-form form > #edit-actions #edit-submit,
.path-cart
  .view-commerce-cart-form
  form
  > #edit-actions
  input[data-drupal-selector="edit-submit"] {
  background: var(--tg-primary-color);
  border-color: var(--tg-primary-color);
  color: var(--tg-white);
}

.path-cart .view-commerce-cart-form form > #edit-actions #edit-submit:hover,
.path-cart
  .view-commerce-cart-form
  form
  > #edit-actions
  input[data-drupal-selector="edit-submit"]:hover {
  background: var(--tg-secondary-color);
  border-color: var(--tg-secondary-color);
  color: var(--tg-white);
}

.path-cart .view-commerce-cart-form form > #edit-actions #edit-checkout,
.path-cart
  .view-commerce-cart-form
  form
  > #edit-actions
  input[data-drupal-selector="edit-checkout"] {
  background: var(--tg-primary-color);
  border-color: var(--tg-primary-color);
  color: var(--tg-white);
}

.path-cart .view-commerce-cart-form form > #edit-actions #edit-checkout:hover,
.path-cart
  .view-commerce-cart-form
  form
  > #edit-actions
  input[data-drupal-selector="edit-checkout"]:hover {
  background: var(--tg-secondary-color);
  border-color: var(--tg-secondary-color);
  color: var(--tg-white);
}

/* PayPal as bottom part of same card */
.path-cart .view-commerce-cart-form form > .paypal-buttons-container {
  background: var(--cart-surface);
  border: 1px solid var(--cart-border);
  border-top: 1px solid var(--cart-border);
  border-radius: 0 0 var(--cart-radius-lg) var(--cart-radius-lg);
  padding: 18px 28px 28px;
  margin-top: 0;
  box-shadow: var(--cart-shadow);
}

/* Remove default margins */
.path-cart .view-commerce-cart-form .mb-3 {
  margin-bottom: 0 !important;
}

/* Mobile */
@media (max-width: 991px) {
  .path-cart .view-commerce-cart-form .cart-card {
    grid-template-columns: 1fr;
    padding: 20px;
    gap: 20px;
  }

  .path-cart
    .view-commerce-cart-form
    .cart-card__product
    .commerce-product-variation {
    flex-direction: column;
  }

  .path-cart
    .view-commerce-cart-form
    .cart-card__product
    .field--name-field-featured
    img {
    width: 100%;
    max-width: 260px;
    height: auto;
  }

  .path-cart
    .view-commerce-cart-form
    form
    > [data-drupal-selector="order-total-summary"],
  .path-cart .view-commerce-cart-form form > #edit-actions,
  .path-cart .view-commerce-cart-form form > .paypal-buttons-container {
    max-width: 100%;
  }
}

@media (max-width: 575px) {
  .path-cart .view-commerce-cart-form .cart-card,
  .path-cart
    .view-commerce-cart-form
    form
    > [data-drupal-selector="order-total-summary"],
  .path-cart .view-commerce-cart-form form > #edit-actions,
  .path-cart .view-commerce-cart-form form > .paypal-buttons-container {
    padding-left: 16px;
    padding-right: 16px;
  }

  .path-cart .view-commerce-cart-form .cart-card__product .field--name-title,
  .path-cart
    .view-commerce-cart-form
    .cart-card__product
    .commerce-product-variation__title,
  .path-cart .view-commerce-cart-form .cart-card__product h2,
  .path-cart .view-commerce-cart-form .cart-card__product h3,
  .path-cart .view-commerce-cart-form .cart-card__product h4 {
    font-size: 24px;
  }
}

/* =========================================
   CART — Event ticket rich card
   ========================================= */

.path-cart .view-commerce-cart-form .cart-evt {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 1.5rem;
  align-items: start;
}

/* Thumbnail */
.path-cart .cart-evt__thumb {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--tg-secondary-color, #0d1b2a);
  aspect-ratio: 4/3;
}
.path-cart .cart-evt__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.path-cart .cart-evt__thumb--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}
.path-cart .cart-evt__thumb--placeholder .material-symbols-sharp {
  font-size: 3rem;
  color: rgba(255, 255, 255, 0.25);
}
/* Gold badge overlaid on the thumbnail */
.path-cart .cart-evt__thumb-badge {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  padding: 0.5rem 0.75rem;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.path-cart .cart-evt__thumb-badge .material-symbols-sharp {
  font-size: 14px;
}

/* Info column */
.path-cart .cart-evt__info {
  min-width: 0;
}

/* Category / type badges */
.path-cart .cart-evt__badges {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.625rem;
}
.path-cart .cart-evt__badge {
  display: inline-block;
  font-size: 0.675rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 0.2rem 0.625rem;
  border-radius: 999px;
}
.path-cart .cart-evt__badge--category {
  background: rgba(192, 154, 82, 0.12);
  color: var(--tg-primary-color, #c09a52);
  border: 1px solid rgba(192, 154, 82, 0.25);
}
.path-cart .cart-evt__badge--type {
  background: rgba(13, 27, 42, 0.07);
  color: var(--tg-secondary-color, #0d1b2a);
  border: 1px solid rgba(13, 27, 42, 0.12);
}
[data-bs-theme="dark"] .cart-evt__badge--type {
  background: rgba(255, 255, 255, 0.08);
  color: #c8d0da;
  border-color: rgba(255, 255, 255, 0.12);
}

/* Event title */
.path-cart .cart-evt__title {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--cart-text);
  margin: 0 0 0.875rem;
}
.path-cart .cart-evt__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.18s ease;
}
.path-cart .cart-evt__title a:hover {
  color: var(--tg-primary-color, #c09a52);
}

/* Detail rows (date, location) */
.path-cart .cart-evt__detail {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  margin-bottom: 0.5rem;
}
.path-cart .cart-evt__detail-icon {
  font-size: 18px;
  color: var(--tg-primary-color, #c09a52);
  flex-shrink: 0;
  font-variation-settings: "FILL" 1;
  margin-top: 1px;
}
.path-cart .cart-evt__detail-primary {
  display: block;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--cart-text);
  line-height: 1.3;
}
.path-cart .cart-evt__detail-secondary {
  display: block;
  font-size: 0.8125rem;
  color: var(--cart-text-muted);
  margin-top: 1px;
}

/* Perks row */
.path-cart .cart-evt__perks {
  display: flex;
  flex-wrap: wrap;
  gap: 0.375rem 1rem;
  margin-top: 0.875rem;
  padding-top: 0.875rem;
  border-top: 1px solid var(--cart-border);
}
.path-cart .cart-evt__perk {
  display: flex;
  align-items: center;
  gap: 0.3rem;
  font-size: 0.775rem;
  font-weight: 500;
  color: var(--cart-text-muted);
}
.path-cart .cart-evt__perk .material-symbols-sharp {
  font-size: 14px;
  color: #28b45a;
  font-variation-settings: "FILL" 1;
  flex-shrink: 0;
}
.path-cart .cart-evt__perk:last-child .material-symbols-sharp {
  color: var(--cart-text-muted);
}

/* Responsive */
@media (max-width: 700px) {
  .path-cart .cart-evt {
    grid-template-columns: 1fr;
  }
  .path-cart .cart-evt__thumb {
    max-width: 100%;
    aspect-ratio: 16/7;
  }
}

/* =========================================
   CART — Course pricing-tier rich card
   (mirrors .cart-evt — see above)
   ========================================= */

.path-cart .view-commerce-cart-form .cart-course {
  display: grid;
  grid-template-columns: 180px 1fr;
  gap: 1.5rem;
  align-items: start;
}

/* Thumbnail */
.path-cart .cart-course__thumb {
  position: relative;
  border-radius: 14px;
  overflow: hidden;
  flex-shrink: 0;
  background: var(--tg-secondary-color, #0d1b2a);
  aspect-ratio: 4/3;
}
.path-cart .cart-course__thumb img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
.path-cart .cart-course__thumb--placeholder {
  display: flex;
  align-items: center;
  justify-content: center;
}
.path-cart .cart-course__thumb--placeholder .material-symbols-sharp {
  font-size: 3rem;
  color: rgba(255, 255, 255, 0.25);
}
.path-cart .cart-course__thumb-badge {
  position: absolute;
  bottom: 0;
  left: 0;
  right: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 0.3rem;
  padding: 0.5rem 0.75rem;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
}
.path-cart .cart-course__thumb-badge .material-symbols-sharp {
  font-size: 14px;
}

/* Info column */
.path-cart .cart-course__info {
  min-width: 0;
}

/* Category / programme / tier badges */
.path-cart .cart-course__badges {
  display: flex;
  gap: 0.5rem;
  flex-wrap: wrap;
  margin-bottom: 0.625rem;
}
.path-cart .cart-course__badge {
  display: inline-block;
  font-size: 0.675rem;
  font-weight: 700;
  letter-spacing: 0.07em;
  text-transform: uppercase;
  padding: 0.2rem 0.625rem;
  border-radius: 999px;
}
.path-cart .cart-course__badge--category {
  background: rgba(192, 154, 82, 0.12);
  color: var(--tg-primary-color, #c09a52);
  border: 1px solid rgba(192, 154, 82, 0.25);
}
.path-cart .cart-course__badge--type,
.path-cart .cart-course__badge--tier {
  background: rgba(13, 27, 42, 0.07);
  color: var(--tg-secondary-color, #0d1b2a);
  border: 1px solid rgba(13, 27, 42, 0.12);
}
[data-bs-theme="dark"] .cart-course__badge--type,
[data-bs-theme="dark"] .cart-course__badge--tier {
  background: rgba(255, 255, 255, 0.08);
  color: #c8d0da;
  border-color: rgba(255, 255, 255, 0.12);
}

.path-cart .cart-course__title {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.025em;
  line-height: 1.2;
  color: var(--cart-text);
  margin: 0 0 0.5rem;
}
.path-cart .cart-course__title a {
  color: inherit;
  text-decoration: none;
  transition: color 0.18s ease;
}
.path-cart .cart-course__title a:hover {
  color: var(--tg-primary-color, #c09a52);
}

/* Subtitle / description */
.path-cart .cart-course__subtitle {
  font-size: 0.875rem;
  color: var(--cart-text-muted);
  line-height: 1.5;
  margin: 0 0 0.75rem;
}

/* What's included */
.path-cart .cart-course__features {
  list-style: none;
  margin: 0.5rem 0 0;
  padding: 0.75rem 0 0;
  border-top: 1px solid var(--cart-border);
  display: grid;
  gap: 0.375rem;
}
.path-cart .cart-course__features li {
  display: flex;
  align-items: flex-start;
  gap: 0.4rem;
  font-size: 0.8125rem;
  color: var(--cart-text-muted);
  line-height: 1.4;
}
.path-cart .cart-course__features .material-symbols-sharp {
  font-size: 16px;
  color: #28b45a;
  font-variation-settings: "FILL" 1;
  flex-shrink: 0;
  margin-top: 1px;
}

/* Responsive */
@media (max-width: 700px) {
  .path-cart .cart-course {
    grid-template-columns: 1fr;
  }
  .path-cart .cart-course__thumb {
    max-width: 100%;
    aspect-ratio: 16/7;
  }
}

/* =========================================
   CHECKOUT — wide layout + sidebar heading
   ========================================= */

.checkout-form-wide .checkout-form__sidebar {
  background: var(--tg-white, #fff);
  border: 1px solid var(--tg-border-color, #e2ddd7);
  border-radius: 16px;
  padding: 1.75rem;
  box-shadow: 0 4px 24px rgba(13, 27, 42, 0.06);
  position: sticky;
  top: 100px;
}
[data-bs-theme="dark"] .checkout-form-wide .checkout-form__sidebar {
  background: #111e2d;
  border-color: rgba(255, 255, 255, 0.1);
}

.checkout-sidebar-heading {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 1.0625rem;
  font-weight: 700;
  color: var(--tg-heading-font-color, #0d1b2a);
  margin-bottom: 1.25rem;
  padding-bottom: 1rem;
  border-bottom: 1px solid var(--tg-border-color, #e2ddd7);
}
[data-bs-theme="dark"] .checkout-sidebar-heading {
  color: #e4eaf0;
}
.checkout-sidebar-heading .material-symbols-sharp {
  font-size: 20px;
  color: var(--tg-primary-color, #c09a52);
  font-variation-settings: "FILL" 1;
}

.checkout-form-wide .checkout-form__footer {
  margin-top: 1.5rem;
}

/* =========================================
   CHECKOUT — action buttons + footer layout
   Note: The first block below handles generic .checkout-nav-btn and
   bare .link--previous rules (with hardcoded accent colour as fallback).
   The second block (CHECKOUT BUTTONS: ICONS + UPPERCASE) is the
   authoritative final styling scoped to the Commerce multistep flow;
   it overrides the first block for those selectors.
========================================= */

/* Checkout nav buttons — generic pill style */
.path-checkout .checkout-nav-btn,
.path-checkout .link--previous,
.path-checkout input[value="Continue to review"] {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-height: 52px;
  padding: 14px 22px;
  border-radius: 999px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  transition: all 0.2s ease;
  border: 1px solid transparent;
}

/* Primary button */
.path-checkout .checkout-nav-btn--primary,
.path-checkout input[value="Continue to review"] {
  background: #c44d3b;
  color: #fff;
  border-color: #c44d3b;
  box-shadow: 0 10px 24px rgba(196, 77, 59, 0.18);
}

.path-checkout .checkout-nav-btn--primary:hover,
.path-checkout input[value="Continue to review"]:hover {
  background: #a93d2f;
  border-color: #a93d2f;
  color: #fff;
}

/* Secondary button */
.path-checkout .checkout-nav-btn--secondary,
.path-checkout .link--previous {
  background: #fff7f2;
  color: #a54835;
  border-color: #e7d8cd;
}

.path-checkout .checkout-nav-btn--secondary:hover,
.path-checkout .link--previous:hover {
  background: #fdeee7;
  color: #8f3e2d;
  border-color: #ddbcaf;
}

/* Material icon styling */
.path-checkout .checkout-nav-btn .material-symbols-sharp,
.path-checkout .link--previous .material-symbols-sharp {
  font-size: 20px;
  line-height: 1;
  font-variation-settings:
    "FILL" 0,
    "wght" 300,
    "GRAD" 0,
    "opsz" 24;
}

.path-checkout .form-actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  align-items: center;
}

.path-checkout .link--previous {
  margin-top: 0;
}

/* Focus states */
.path-checkout .checkout-nav-btn:focus-visible,
.path-checkout .link--previous:focus-visible,
.path-checkout input[value="Continue to review"]:focus-visible {
  outline: 0;
  box-shadow: 0 0 0 4px rgba(196, 77, 59, 0.15);
}

/* =========================================
   CHECKOUT ACTIONS + FOOTER WIDTH
========================================= */

/* Make footer region behave like col-sm-6 */
.path-checkout .layout-region-checkout-footer {
  width: 100%;
}

@media (min-width: 576px) {
  .path-checkout .layout-region-checkout-footer {
    flex: 0 0 auto;
    width: 50%;
    max-width: 50%;
  }
}

/* =========================================
   CHECKOUT BUTTONS: ICONS + UPPERCASE
   — authoritative final styling for the
     Commerce multistep checkout flow
========================================= */

/* Shared button styling */
.path-checkout
  #commerce-checkout-flow-multistep-default
  .form-actions
  .form-submit,
.path-checkout #commerce-checkout-flow-multistep-default .form-actions button,
.path-checkout #commerce-checkout-flow-multistep-default .link--previous {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: 10px;
  min-width: 220px;
  height: 54px;
  padding: 0 22px;
  margin: 0;
  border-radius: 4px;
  font-size: 15px;
  font-weight: 700;
  line-height: 1;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

/* Primary button */
.path-checkout
  #commerce-checkout-flow-multistep-default
  .form-actions
  .form-submit,
.path-checkout #commerce-checkout-flow-multistep-default .form-actions button {
  background: var(--tg-primary-color);
  color: #fff;
  border: 1px solid var(--tg-primary-color);
  box-shadow: 0 10px 24px rgba(196, 77, 59, 0.18);
}

.path-checkout
  #commerce-checkout-flow-multistep-default
  .form-actions
  .form-submit:hover,
.path-checkout
  #commerce-checkout-flow-multistep-default
  .form-actions
  button:hover {
  background: var(--tg-secondary-color);
  border-color: var(--tg-secondary-color);
  color: var(--tg-white);
}

/* Secondary button */
.path-checkout #commerce-checkout-flow-multistep-default .link--previous {
  background: transparent;
  color: var(--tg-primary-color);
  border: 1px solid var(--tg-primary-color);
}

.path-checkout #commerce-checkout-flow-multistep-default .link--previous:hover {
  background: var(--tg-secondary-color);
  border-color: var(--tg-secondary-color);
  color: var(--tg-white);
}

/* Put both actions on one row */
.path-checkout #commerce-checkout-flow-multistep-default .form-actions {
  display: inline-flex;
  align-items: stretch;
  gap: 12px;
  flex-wrap: nowrap;
  margin-bottom: 0;
  vertical-align: top;
}

.path-checkout
  #commerce-checkout-flow-multistep-default
  .form-actions
  + .link--previous {
  display: inline-flex;
  vertical-align: top;
  margin-top: 0;
  margin-left: 12px;
}

/* Make the parent flow not force a line break */
.path-checkout #commerce-checkout-flow-multistep-default .layout-checkout-form,
.path-checkout #commerce-checkout-flow-multistep-default .checkout-pane,
.path-checkout #commerce-checkout-flow-multistep-default .fieldset-wrapper {
  overflow: visible;
}

/* Material symbols alignment */
.path-checkout .material-symbols-sharp {
  font-size: 20px;
  line-height: 1;
  font-variation-settings:
    "FILL" 0,
    "wght" 300,
    "GRAD" 0,
    "opsz" 24;
}

/* Mobile fallback */
@media (max-width: 575px) {
  .path-checkout #commerce-checkout-flow-multistep-default .form-actions {
    display: flex;
    width: 100%;
    flex-wrap: wrap;
  }

  .path-checkout
    #commerce-checkout-flow-multistep-default
    .form-actions
    + .link--previous {
    display: flex;
    margin-left: 0;
    margin-top: 12px;
  }

  .path-checkout
    #commerce-checkout-flow-multistep-default
    .form-actions
    .form-submit,
  .path-checkout #commerce-checkout-flow-multistep-default .form-actions button,
  .path-checkout #commerce-checkout-flow-multistep-default .link--previous {
    min-width: 100%;
    width: 100%;
  }
}

/*=============================
    48. Podcast styles
===============================*/

/* =====================================================
   PODCAST EPISODE PAGE
   ===================================================== */

/* ── Artwork ────────────────────────────────────────── */
.podcast-artwork.blog-details-thumb img {
  height: auto;
  max-height: 440px;
  object-fit: cover;
  border-radius: 12px;
}

/* ── Player container ───────────────────────────────── */
.podcast-player-wrap {
  display: flex;
  flex-direction: column;
  gap: 16px;
  margin-bottom: 30px;
}

.podcast-player--spotify {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
}
.podcast-player--spotify iframe {
  display: block;
}

.podcast-player--youtube {
  border-radius: 12px;
  overflow: hidden;
  box-shadow: 0 4px 16px rgba(15, 23, 42, 0.1);
}

/* ── Bootstrap tabs — podcast content ──────────────────
   Overrides Bootstrap's default tab look with:
   - Material Sharp icon + label on each tab
   - Active tab: primary-colour underline + filled icon
   - Smooth fade transition between panes
   ─────────────────────────────────────────────────── */
.podcast-tabs {
  margin-bottom: 36px;
}

/* Nav strip */
.podcast-tabs__nav.nav-tabs {
  gap: 4px;
  border-bottom: 2px solid var(--tg-gray, #d9d9d9);
  flex-wrap: nowrap; /* keep all tabs on one line */
  overflow-x: auto;
  scrollbar-width: none;
}
.podcast-tabs__nav.nav-tabs::-webkit-scrollbar {
  display: none;
}

/* Individual tab button */
.podcast-tabs__nav .nav-link {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 10px 18px;
  border: none;
  border-bottom: 3px solid transparent;
  border-radius: 0;
  background: transparent;
  color: var(--tg-icon-color, #6b788a);
  font-size: 13px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 0.04em;
  line-height: 1;
  white-space: nowrap;
  transition:
    color 0.18s ease,
    border-color 0.18s ease;
}
.podcast-tabs__nav .nav-link:hover {
  color: var(--tg-body-font-color);
  border-color: var(--tg-gray, #d9d9d9);
}

/* Active tab: primary-colour underline + darker text */
.podcast-tabs__nav .nav-link.active {
  color: var(--tg-primary-color);
  border-color: var(--tg-primary-color);
  background: transparent;
}

/* Material icon inside tab — filled variant on active */
.podcast-tabs__nav .nav-link .material-symbols-sharp {
  font-size: 20px;
  line-height: 1;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  transition: font-variation-settings 0.18s ease;
}
.podcast-tabs__nav .nav-link.active .material-symbols-sharp {
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

/* Pane */
.podcast-tabs__content {
  border: 1px solid var(--tg-gray, #d9d9d9);
  border-top: none;
  border-radius: 0 0 8px 8px;
  background: var(--tg-white, #fff);
}

.podcast-tabs__content .tab-pane {
  padding: 28px 32px;
}

/* ── Dark mode ──────────────────────────────────────── */
[data-bs-theme="dark"] .podcast-tabs__nav.nav-tabs {
  border-bottom-color: rgba(255, 255, 255, 0.12);
}
[data-bs-theme="dark"] .podcast-tabs__nav .nav-link {
  color: rgba(255, 255, 255, 0.5);
}
[data-bs-theme="dark"] .podcast-tabs__nav .nav-link:hover {
  color: rgba(255, 255, 255, 0.8);
  border-color: rgba(255, 255, 255, 0.2);
}
[data-bs-theme="dark"] .podcast-tabs__nav .nav-link.active {
  color: var(--tg-primary-color);
  border-color: var(--tg-primary-color);
}
[data-bs-theme="dark"] .podcast-tabs__content {
  background: #1e2635;
  border-color: rgba(255, 255, 255, 0.12);
}

/* ── Responsive ─────────────────────────────────────── */
@media (max-width: 575.98px) {
  .podcast-tabs__content .tab-pane {
    padding: 20px 18px;
  }
  .podcast-tabs__nav .nav-link {
    padding: 8px 12px;
    font-size: 11px;
  }
  .podcast-tabs__nav .nav-link .material-symbols-sharp {
    font-size: 17px;
  }
}

/*=============================
    49. Downloader nav item
===============================*/

/*
 * "My Account" menu item (/user) is only meaningful for Downloaders.
 * Hide it by default; the body class .user-is-downloader (set in
 * zaira_preprocess_html) reveals it for users with that role.
 * :has() is supported in all evergreen browsers (Chrome 105+, Firefox 121+, Safari 15.4+).
 */
.tbm-item:has(> .tbm-link-container > a[href="/user"]) {
  display: none;
}

body.user-is-downloader .tbm-item:has(> .tbm-link-container > a[href="/user"]) {
  display: list-item;
}

/* Mobile menu — same item, block context */
.tbm--mobile .tbm-item:has(> .tbm-link-container > a[href="/user"]) {
  display: none;
}

body.user-is-downloader
  .tbm--mobile
  .tbm-item:has(> .tbm-link-container > a[href="/user"]) {
  display: block;
}

/*=============================
    50. Downloads page
===============================*/

/* ── Header ─────────────────────────────────────────────── */
/* NOTE: Paid-download overrides are appended at the bottom of this section. */
.downloads-header {
  background: linear-gradient(
    135deg,
    var(--tg-secondary-color) 0%,
    #0f2035 100%
  );
  padding: 48px 0 56px;
  text-align: center;
}

.downloads-header__inner {
  max-width: 760px;
  margin: 0 auto;
  padding: 0 24px;
}

.downloads-header__title {
  font-family: "Noto Serif", Georgia, serif;
  font-size: clamp(2rem, 5vw, 3rem);
  color: #f0ebe2;
  margin: 0 0 10px;
}

.downloads-header__subtitle {
  color: rgba(240, 235, 226, 0.7);
  font-size: 1rem;
  margin: 0 0 8px;
}

.downloads-access-badge {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  color: #c09a52;
  font-weight: 600;
  font-size: 0.95rem;
  margin: 0;
}

.downloads-access-badge .material-symbols-sharp {
  font-size: 20px;
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

[data-bs-theme="dark"] .downloads-header {
  background: linear-gradient(135deg, #07101a 0%, #0d1b2a 100%);
}

/* ── Filter bar ─────────────────────────────────────────── */
.downloads-filters {
  background: var(--background-color);
  border-bottom: 1px solid var(--tg-border-color);
  padding: 16px 0;
  position: sticky;
  top: 80px;
  z-index: 10;
}

.downloads-filters__inner {
  max-width: 1200px;
  margin: 0 auto;
  padding: 0 24px;
  display: flex;
  align-items: center;
  gap: 12px;
  flex-wrap: wrap;
}

.downloads-filters__label {
  display: flex;
  align-items: center;
  gap: 6px;
  font-size: 0.85rem;
  font-weight: 600;
  color: var(--tg-icon-color);
  white-space: nowrap;
}

.downloads-filters__label .material-symbols-sharp {
  font-size: 18px;
}

.downloads-filters__select {
  padding: 8px 36px 8px 14px;
  border: 1.5px solid var(--tg-border-color);
  border-radius: 6px;
  background: var(--tg-gray-three);
  color: var(--tg-body-font-color);
  font-size: 0.88rem;
  font-family: inherit;
  cursor: pointer;
  min-width: 200px;
  appearance: none;
  -webkit-appearance: none;
  background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='16' height='16' viewBox='0 0 24 24'%3E%3Cpath fill='%23888' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
  background-repeat: no-repeat;
  background-position: right 10px center;
  transition: border-color 0.15s ease;
}

.downloads-filters__select:focus {
  outline: none;
  border-color: #c09a52;
}

[data-bs-theme="dark"] .downloads-filters {
  background: #0a1525;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme="dark"] .downloads-filters__select {
  background-color: #0f1e35;
  border-color: rgba(255, 255, 255, 0.15);
  color: #e0e6ed;
}

/* ── Asset grid ─────────────────────────────────────────── */
.downloads-grid {
  max-width: 1200px;
  margin: 0 auto;
  padding: 40px 24px 80px;
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
  gap: 28px;
}

.downloads-empty,
.downloads-no-match {
  grid-column: 1 / -1;
  text-align: center;
  padding: 60px 24px;
  color: var(--tg-icon-color);
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
}

.downloads-empty .material-symbols-sharp,
.downloads-no-match .material-symbols-sharp {
  font-size: 48px;
  opacity: 0.4;
}

/* ── Asset card ─────────────────────────────────────────── */
.download-card {
  background: var(--tg-gray-three);
  border: 1px solid var(--tg-border-color);
  border-radius: 12px;
  overflow: hidden;
  display: flex;
  flex-direction: column;
  transition:
    box-shadow 0.2s ease,
    transform 0.2s ease;
}

.download-card:hover {
  box-shadow: 0 8px 24px rgba(0, 0, 0, 0.1);
}

.download-card__thumb img {
  width: 100%;
  height: 180px;
  object-fit: cover;
  display: block;
}

.download-card__thumb--placeholder {
  height: 180px;
  background: linear-gradient(135deg, #0d1b2a 0%, #1a2e45 100%);
  display: flex;
  align-items: center;
  justify-content: center;
}

.download-card__thumb--placeholder .material-symbols-sharp {
  font-size: 64px;
  color: rgba(192, 154, 82, 0.5);
  font-variation-settings:
    "wght" 200,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 48;
}

.download-card__body {
  padding: 20px;
  flex: 1;
  display: flex;
  flex-direction: column;
  gap: 10px;
}

.download-card__category {
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
}

.download-card__title {
  font-size: 1.1rem;
  font-weight: 700;
  margin: 0;
  line-height: 1.3;
  color: var(--tg-heading-font-color);
}

/* Cards are now fully clickable (except the action area) — show pointer cursor */
.download-card.js-card-details {
  cursor: pointer;
}
.download-card.js-card-details:hover {
  box-shadow: 0 8px 28px rgba(0, 0, 0, 0.13);
}
.download-card.js-card-details:focus-visible {
  outline: 2px solid #c09a52;
  outline-offset: 3px;
}
/* Action area re-establishes normal cursor so buttons feel interactive */
.download-card__action {
  margin-top: auto;
  padding-top: 12px;
  cursor: default;
}

/* ── Detail drawer ────────────────────────────────────── */

/* Outer wrapper — always in the DOM, hidden via visibility + pointer-events.
   Using visibility (not display:none) so CSS transforms can transition. */
.downloads-drawer {
  position: fixed;
  inset: 0;
  z-index: 1070;
  display: flex;
  justify-content: flex-end;
  visibility: hidden;
  pointer-events: none;
}

.downloads-drawer.is-open {
  visibility: visible;
  pointer-events: auto;
}

.downloads-drawer__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(13, 27, 42, 0.55);
  backdrop-filter: blur(3px);
  opacity: 0;
  transition: opacity 0.32s ease;
}

.downloads-drawer.is-open .downloads-drawer__backdrop {
  opacity: 1;
}

/* Panel — slides in from the right */
.downloads-drawer__panel {
  position: relative;
  z-index: 1;
  width: 440px;
  max-width: calc(100vw - 48px);
  height: 100%;
  overflow-y: auto;
  overscroll-behavior: contain;
  background: var(--background-color);
  border-left: 1px solid var(--tg-border-color);
  box-shadow: -6px 0 32px rgba(0, 0, 0, 0.22);
  display: flex;
  flex-direction: column;
  transform: translateX(100%);
  transition: transform 0.32s cubic-bezier(0.4, 0, 0.2, 1);
  outline: none;
}

.downloads-drawer.is-open .downloads-drawer__panel {
  transform: translateX(0);
}

[data-bs-theme="dark"] .downloads-drawer__panel {
  background: #0a1525;
  border-color: rgba(255, 255, 255, 0.1);
}

/* Close button */
.downloads-drawer__close {
  position: absolute;
  top: 14px;
  right: 14px;
  z-index: 2;
  background: rgba(255, 255, 255, 0.85);
  border: none;
  border-radius: 50%;
  width: 36px;
  height: 36px;
  display: flex;
  align-items: center;
  justify-content: center;
  cursor: pointer;
  color: var(--tg-body-font-color);
  transition: background 0.15s ease;
  backdrop-filter: blur(4px);
}

.downloads-drawer__close:hover {
  background: rgba(255, 255, 255, 1);
}
.downloads-drawer__close .material-symbols-sharp {
  font-size: 20px;
}

[data-bs-theme="dark"] .downloads-drawer__close {
  background: rgba(15, 30, 53, 0.85);
  color: #e0e6ed;
}
[data-bs-theme="dark"] .downloads-drawer__close:hover {
  background: rgba(15, 30, 53, 1);
}

/* Image area */
.downloads-drawer__image {
  flex-shrink: 0;
  overflow: hidden;
  max-height: 260px;
}

.downloads-drawer__image .download-card__thumb img,
.downloads-drawer__image .download-card__thumb-wrap img {
  width: 100%;
  height: 260px;
  object-fit: cover;
  display: block;
}

.downloads-drawer__image .download-card__thumb--placeholder {
  height: 200px;
}

/* Remove the price badge that was on the thumbnail — the price is shown in the
   action area instead */
.downloads-drawer__image .download-card__price-badge {
  display: none;
}

/* Content area */
.downloads-drawer__content {
  flex: 1;
  padding: 24px 28px 32px;
  display: flex;
  flex-direction: column;
  gap: 16px;
}

.downloads-drawer__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

.downloads-drawer__title {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 1.4rem;
  color: var(--tg-heading-font-color);
  margin: 0;
  line-height: 1.3;
}

/* Full description prose */
.downloads-drawer__desc {
  font-size: 0.9rem;
  line-height: 1.75;
  color: var(--tg-body-font-color);
  flex: 1;
}

.downloads-drawer__desc p {
  margin: 0 0 0.8em;
}
.downloads-drawer__desc ul,
.downloads-drawer__desc ol {
  margin: 0 0 0.8em 1.4em;
  padding: 0;
}
.downloads-drawer__desc h2,
.downloads-drawer__desc h3 {
  font-size: 1rem;
  font-weight: 700;
  margin: 1.2em 0 0.5em;
}

[data-bs-theme="dark"] .downloads-drawer__desc {
  color: #c8d0da;
}

/* Action area in drawer — full-width */
.downloads-drawer__action .download-card__btn--buy,
.downloads-drawer__action .download-card__btn--locked,
.downloads-drawer__action .download-card__file a,
.downloads-drawer__action .download-card__file .file--application {
  width: 100%;
  justify-content: center;
  padding: 12px 24px;
  font-size: 0.95rem;
}

.downloads-drawer__action .download-card__buy {
  flex-direction: column;
  gap: 8px;
}

.downloads-drawer__action .download-card__price {
  font-size: 1.15rem;
  text-align: center;
}

/* ── Mobile — bottom sheet ───────────────────────────── */
@media (max-width: 767.98px) {
  .downloads-drawer {
    align-items: flex-end;
  }
  .downloads-drawer__panel {
    width: 100%;
    max-width: 100%;
    height: 88vh;
    border-left: none;
    border-radius: 18px 18px 0 0;
    border-top: 1px solid var(--tg-border-color);
    box-shadow: 0 -6px 32px rgba(0, 0, 0, 0.2);
  }
  .downloads-drawer.is-open .downloads-drawer__panel {
  }
  .downloads-drawer__content {
    padding: 20px 20px 28px;
  }
  .downloads-drawer__image .download-card__thumb img,
  .downloads-drawer__image .download-card__thumb-wrap img {
    height: 200px;
  }
}

/* Prevent body scroll while drawer is open */
body.downloads-drawer-open {
  overflow: hidden;
}

/* Locked / "Get Free Access" button */
.download-card__btn--locked {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  background: transparent;
  border: 1.5px solid #c09a52;
  color: #c09a52;
  border-radius: 6px;
  font-size: 0.88rem;
  font-weight: 600;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease;
  width: 100%;
  justify-content: center;
}

.download-card__btn--locked:hover {
  background: #c09a52;
  color: #0d1b2a;
}

.download-card__btn--locked .material-symbols-sharp {
  font-size: 17px;
  font-variation-settings:
    "wght" 400,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 20;
}

/* Download file link (logged-in downloader) */
.download-card__file a,
.download-card__file .file--application,
.download-card__file .file--text {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  background: #c09a52;
  color: #0d1b2a;
  border-radius: 6px;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  transition: background 0.15s ease;
  width: 100%;
  justify-content: center;
}

.download-card__file a:hover {
  background: #b08840;
  color: #0d1b2a;
}

/* ── Dark mode cards ─────────────────────────────────────── */
[data-bs-theme="dark"] .download-card {
  background: #0f1e35;
  border-color: rgba(255, 255, 255, 0.1);
}

[data-bs-theme="dark"] .download-card__title {
  color: #e0e6ed;
}

/* ── Registration modal ─────────────────────────────────── */
.downloads-modal {
  position: fixed;
  inset: 0;
  z-index: 1060;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

/* Prevent body scroll while modal is open */
body.downloads-modal-open {
  overflow: hidden;
}

.downloads-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(13, 27, 42, 0.75);
  backdrop-filter: blur(3px);
}

.downloads-modal__box {
  position: relative;
  background: var(--background-color);
  border-radius: 14px;
  padding: 36px 40px 40px;
  max-width: 560px;
  width: 100%;
  max-height: 90vh;
  overflow-y: auto;
  box-shadow: 0 24px 64px rgba(0, 0, 0, 0.35);
  border: 1px solid var(--tg-border-color);
}

[data-bs-theme="dark"] .downloads-modal__box {
  background: #0a1525;
  border-color: rgba(255, 255, 255, 0.12);
}

.downloads-modal__close {
  position: absolute;
  top: 16px;
  right: 16px;
  background: transparent;
  border: none;
  padding: 4px;
  cursor: pointer;
  color: var(--tg-icon-color);
  border-radius: 50%;
  display: flex;
  align-items: center;
  transition:
    color 0.15s ease,
    background 0.15s ease;
}

.downloads-modal__close:hover {
  color: var(--tg-body-font-color);
  background: rgba(0, 0, 0, 0.06);
}

.downloads-modal__close .material-symbols-sharp {
  font-size: 22px;
}

.downloads-modal__header {
  display: flex;
  align-items: center;
  gap: 10px;
  margin-bottom: 6px;
}

.downloads-modal__icon {
  font-size: 28px;
  color: #c09a52;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

.downloads-modal__title {
  font-family: "Noto Serif", Georgia, serif;
  font-size: 1.5rem;
  color: var(--tg-heading-font-color);
  margin: 0;
}

.downloads-modal__subtitle {
  font-size: 0.875rem;
  color: var(--tg-icon-color);
  margin: 0 0 20px;
  font-style: italic;
}

.downloads-modal__form .webform-submission-form {
  margin-top: 4px;
}

/* Webform inside the modal — compact submit button */
.downloads-modal__form .form-submit,
.downloads-modal__form .webform-button--submit {
  background: #c09a52;
  color: #0d1b2a;
  border: none;
  border-radius: 6px;
  padding: 10px 28px;
  font-weight: 700;
  cursor: pointer;
  transition: background 0.15s ease;
  width: 100%;
  font-size: 0.95rem;
}

.downloads-modal__form .form-submit:hover,
.downloads-modal__form .webform-button--submit:hover {
  background: #b08840;
}

/* ── Mobile ──────────────────────────────────────────────── */
@media (max-width: 575.98px) {
  .downloads-grid {
    grid-template-columns: 1fr;
    padding: 24px 16px 60px;
  }
  .downloads-header {
    padding: 32px 0 40px;
  }
  .downloads-modal__box {
    padding: 28px 20px 32px;
  }
  .downloads-filters__select {
    min-width: 0;
    width: 100%;
  }
}

/* ── Paid download additions ─────────────────────────────── */

/* Wrap thumb + price overlay together */
.download-card__thumb-wrap {
  position: relative;
  overflow: hidden;
}

/* Price badge overlaid on the thumbnail */
.download-card__price-badge {
  position: absolute;
  top: 12px;
  right: 12px;
  background: #c09a52;
  color: #0d1b2a;
  font-size: 0.82rem;
  font-weight: 700;
  padding: 3px 10px;
  border-radius: 20px;
  letter-spacing: 0.03em;
  pointer-events: none;
  line-height: 1.6;
}

/* Meta row (category badge + purchased badge) */
.download-card__meta {
  display: flex;
  align-items: center;
  gap: 8px;
  flex-wrap: wrap;
}

/* "Purchased" inline badge */
.download-card__purchased-tag {
  display: inline-flex;
  align-items: center;
  gap: 4px;
  font-size: 11px;
  font-weight: 700;
  text-transform: uppercase;
  letter-spacing: 0.06em;
  color: #c09a52;
}

.download-card__purchased-tag .material-symbols-sharp {
  font-size: 14px;
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 20;
}

/* Buy row — price + button side-by-side */
.download-card__buy {
  display: flex;
  align-items: center;
  gap: 10px;
  flex-wrap: wrap;
}

/* Inline price label in the action row */
.download-card__price {
  font-size: 1rem;
  font-weight: 700;
  color: var(--tg-heading-font-color);
  white-space: nowrap;
}

/* "Buy Now" gold button */
.download-card__btn--buy {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 18px;
  background: #c09a52;
  color: #0d1b2a;
  border: none;
  border-radius: 6px;
  font-size: 0.88rem;
  font-weight: 700;
  text-decoration: none;
  cursor: pointer;
  transition: background 0.15s ease;
  flex: 1;
  justify-content: center;
}

.download-card__btn--buy:hover {
  background: #b08840;
  color: #0d1b2a;
}

.download-card__btn--buy .material-symbols-sharp {
  font-size: 17px;
  font-variation-settings:
    "wght" 400,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 20;
}

/* Paid card border accent */
.download-card--paid {
  border-color: rgba(192, 154, 82, 0.35);
}

/* Dark mode adjustments */
[data-bs-theme="dark"] .download-card__price {
  color: #e0e6ed;
}
[data-bs-theme="dark"] .download-card--paid {
  border-color: rgba(192, 154, 82, 0.25);
}

/*=============================
    51. FAQ accordion — brand palette
===============================*/

/*
 * Theme colour hierarchy (for reference):
 *
 *   Light                          Dark
 *   ─────────────────────────────  ──────────────────────────────────
 *   page bg:    #F7F5F2            page bg:    #0D1B2A  (tg-black)
 *   card bg:    #F7F5F2            card bg:    #0F1E35  (tg-teal dark)
 *   border:     #E2DDD7            border:     #273341  (tg-border-dark)
 *   body text:  #3D4A56            body text:  #c8d0da
 *   heading:    #0D1B2A            heading:    #e0e6ed
 *   accent:     #C09A52 (gold)     accent:     #C09A52 (gold — unchanged)
 */

/* ── Shared structural overrides (both modes) ───────── */

/* Match article body typography */
.faq-question {
  font-family: var(--tg-body-font-family, "Inter", sans-serif);
  font-size: 0.97rem;
  font-weight: 500;
  transition:
    color 0.15s ease,
    background-color 0.15s ease,
    border-left-color 0.15s ease;
}

/* Kill Bootstrap's brightness filter — we control colours explicitly */
.faq-question:hover {
  filter: none;
}

/* Open item: gold left accent bar replaces Bootstrap's inset shadow */
.faq-item[open] > .faq-question {
  border-left: 3px solid #c09a52;
  padding-left: calc(var(--faq-btn-padding-x, 1.25rem) - 3px);
  box-shadow: none;
}

/* Answer prose */
.faq-answer p {
  font-size: 0.93rem;
  line-height: 1.75;
  max-width: none; /* let the layout container control width */
}

/* More vertical breathing room in article context */
.blog-details-content .faq-list,
.field--name-field-faq .faq-list {
  margin-block: 2rem;
}

/* ── Light mode ─────────────────────────────────────── */
:root {
  /* Surfaces match the site's warm parchment background */
  --faq-bg: #f7f5f2;
  --faq-btn-bg: #f7f5f2;
  --faq-color: #3d4a56; /* --tg-body-font-color */
  --faq-btn-color: #3d4a56;
  --faq-body-color: #3d4a56;

  /* Borders */
  --faq-border-color: #e2ddd7; /* --tg-border-color */

  /* Active / open item — barely-there gold tint, navy text */
  --faq-active-bg: rgba(192, 154, 82, 0.08);
  --faq-active-color: #0d1b2a; /* --tg-secondary-color */

  /* Chevrons: collapsed = navy body colour, expanded = gold */
  --faq-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%233D4A56'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  --faq-btn-icon-active: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23C09A52'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");

  /* Focus ring — gold glow */
  --faq-btn-focus-box-shadow: 0 0 0 3px rgba(192, 154, 82, 0.28);
}

/* Light hover: whisper of gold */
.faq-question:hover {
  background-color: rgba(192, 154, 82, 0.05);
}

/* ── Dark mode ──────────────────────────────────────── */
/*
 * Dark surface values are hard-coded (not var()) because the relevant
 * theme tokens (--tg-gray-three, --background-color) are defined in :root
 * and are NOT re-declared under [data-bs-theme="dark"], so they still hold
 * their light-mode values at runtime.
 *
 * Correct dark values from the theme:
 *   card surface:  #0F1E35   (used for download cards, sticky nav, etc.)
 *   page bg:       #0D1B2A
 *   border:        #273341
 */
[data-bs-theme="dark"] {
  --faq-bg: #0f1e35;
  --faq-btn-bg: #0f1e35;
  --faq-color: #c8d0da;
  --faq-btn-color: #e0e6ed;
  --faq-body-color: #c8d0da;

  --faq-border-color: #273341;

  --faq-active-bg: rgba(192, 154, 82, 0.14);
  --faq-active-color: #e8d5a3; /* warm cream — gold-tinted heading in dark */

  /* Chevrons: collapsed = light blue-grey, expanded = gold */
  --faq-btn-icon: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23e0e6ed'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");
  --faq-btn-icon-active: url("data:image/svg+xml,%3csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 16 16' fill='%23C09A52'%3e%3cpath fill-rule='evenodd' d='M1.646 4.646a.5.5 0 0 1 .708 0L8 10.293l5.646-5.647a.5.5 0 0 1 .708.708l-6 6a.5.5 0 0 1-.708 0l-6-6a.5.5 0 0 1 0-.708z'/%3e%3c/svg%3e");

  --faq-btn-focus-box-shadow: 0 0 0 3px rgba(192, 154, 82, 0.35);
}

/* Dark hover: gold shimmer on card surface */
[data-bs-theme="dark"] .faq-question:hover {
  background-color: rgba(192, 154, 82, 0.08);
}

/* Dark open item: gold left bar (already set above, pinned here for specificity) */
[data-bs-theme="dark"] .faq-item[open] > .faq-question {
  border-left-color: #c09a52;
}

/* Dark open item shadow — use brand border colour, not Bootstrap's default */
[data-bs-theme="dark"] .faq-item[open] > .faq-question {
  box-shadow: inset 0 -1px 0 #273341;
}

/* Dark answer text */
[data-bs-theme="dark"] .faq-answer {
  color: #c8d0da;
}

/* Ensure the .faq-list wrapper itself picks up the dark background
   (some browsers don't cascade custom-property resets through ::after) */
[data-bs-theme="dark"] .faq-item {
  background-color: #0f1e35;
  border-color: #273341;
}

/*=============================
    52. Main → Footer breathing room
===============================*/

/*
 * The <div role="main" class="main"> has no bottom padding, so the last
 * element on any page (article, basic page, view) butts straight against
 * the footer background. A generous bottom pad creates a natural pause.
 */
.main {
  padding-bottom: clamp(56px, 8vw, 100px);
}

/* Pages that have their own full-bleed section as the last child (e.g. the
   downloads header) don't need the extra pad — they provide their own. */
.page-downloads .main {
  padding-bottom: 0;
}

/*=============================
    53. Account icon dropdown (nav bar)
===============================*/

/* ── Container ─────────────────────────────────────────── */
.tbm-user-menu {
  position: relative;
  flex-shrink: 0;
}

/* ── Toggle (summary styled as icon button) ─────────────── */
.tbm-user-btn {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 44px;
  height: 44px;
  padding: 0;
  background: transparent;
  border: none;
  border-radius: 8px;
  cursor: pointer;
  color: var(--tbm-link-color, #0d1b2a);
  flex-shrink: 0;
  list-style: none;
  user-select: none;
  transition:
    background var(--tbm-transition, 0.28s ease),
    color var(--tbm-transition, 0.28s ease);
}
.tbm-user-btn::-webkit-details-marker {
  display: none;
}
.tbm-user-btn::marker {
  display: none;
}

.tbm-user-btn:hover,
.tbm-user-btn:focus-visible,
.tbm-user-menu[open] .tbm-user-btn {
  background: rgba(0, 0, 0, 0.06);
  color: var(--tg-primary-color);
  outline: none;
}

.tbm-user-btn .material-symbols-sharp {
  font-size: 22px;
  line-height: 1;
  font-variation-settings:
    "wght" 400,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  transition: font-variation-settings 0.18s ease;
}
.tbm-user-menu[open] .tbm-user-btn .material-symbols-sharp,
.tbm-user-menu--logged-in .tbm-user-btn .tbm-user-btn__avatar {
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

/* Login status dot — wraps the avatar so position: absolute anchors to the icon */
.tbm-user-btn {
  position: relative; /* ensure status dot positions relative to this */
}
.tbm-user-btn__status {
  position: absolute;
  bottom: 7px;
  right: 7px;
  width: 9px;
  height: 9px;
  border-radius: 50%;
  border: 2px solid var(--tg-white, #fff);
}
[data-bs-theme="dark"] .tbm-user-btn__status {
  border-color: var(--tg-secondary-color, #0d1b2a);
}
.tbm-user-btn__status--online {
  background: #28b45a;
}
.tbm-user-btn__status--offline {
  background: #9e9e9e;
}

/* ── Dropdown panel ─────────────────────────────────────── */
.tbm-user-dropdown {
  position: absolute;
  top: calc(100% + 8px);
  right: 0;
  min-width: 190px;
  z-index: 400;
  background: rgba(255, 255, 255, 0.96);
  backdrop-filter: blur(20px) saturate(180%);
  -webkit-backdrop-filter: blur(20px) saturate(180%);
  border: 1px solid rgba(0, 0, 0, 0.08);
  border-radius: 14px;
  padding: 6px 4px;
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.05),
    0 12px 30px rgba(0, 0, 0, 0.14);
  visibility: hidden;
  opacity: 0;
  pointer-events: none;
  transform-origin: top right;
  transition:
    opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0.18s;
}
.tbm-user-menu[open] .tbm-user-dropdown {
  visibility: visible;
  opacity: 1;
  pointer-events: auto;
  transition:
    opacity 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    transform 0.18s cubic-bezier(0.16, 1, 0.3, 1),
    visibility 0s linear 0s;
}

/* ── Menu items ─────────────────────────────────────────── */
.tbm-user-dropdown__item {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: 8px;
  color: var(--tg-body-font-color);
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  white-space: nowrap;
  transition: background 0.12s ease;
}
.tbm-user-dropdown__item:hover,
.tbm-user-dropdown__item:focus-visible {
  background: rgba(0, 0, 0, 0.05);
  color: var(--tg-primary-color);
  outline: none;
}
.tbm-user-dropdown__item .material-symbols-sharp {
  font-size: 16px;
  line-height: 1;
  flex-shrink: 0;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* ── Dark mode ──────────────────────────────────────────── */
[data-bs-theme="dark"] .tbm-user-btn {
  color: var(--tbm-link-color, #e4eaf0);
}
[data-bs-theme="dark"] .tbm-user-btn:hover,
[data-bs-theme="dark"] .tbm-user-menu[open] .tbm-user-btn {
  background: rgba(255, 255, 255, 0.1);
}
[data-bs-theme="dark"] .tbm-user-dropdown {
  background: rgba(15, 30, 53, 0.97);
  border-color: rgba(255, 255, 255, 0.1);
  box-shadow:
    0 2px 4px rgba(0, 0, 0, 0.25),
    0 12px 30px rgba(0, 0, 0, 0.5);
}
[data-bs-theme="dark"] .tbm-user-dropdown__item {
  color: #d4dbe4;
}
[data-bs-theme="dark"] .tbm-user-dropdown__item:hover,
[data-bs-theme="dark"] .tbm-user-dropdown__item:focus-visible {
  background: rgba(255, 255, 255, 0.07);
  color: var(--tg-primary-color);
}

/*=============================
    54. User profile page
===============================*/

/* ── Page shell ─────────────────────────────────────────── */
.profile-page {
  --profile-cover-h: 220px;
  --profile-avatar-sz: 120px;
  --profile-radius: 60px; /* half of avatar-sz */
  padding-bottom: clamp(48px, 8vw, 96px);
}

/* ── Cover banner ───────────────────────────────────────── */
.profile-cover {
  height: var(--profile-cover-h);
  background: linear-gradient(135deg, #0d1b2a 0%, #162843 40%, #c09a52 100%);
  position: relative;
  overflow: hidden;
}
.profile-cover::after {
  content: "";
  position: absolute;
  inset: 0;
  background: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='60' height='60'%3E%3Ccircle cx='30' cy='30' r='1.5' fill='rgba(255,255,255,0.06)'/%3E%3C/svg%3E");
  pointer-events: none;
}

/* ── Identity block (avatar, name, roles, social) ────────── */
.profile-identity {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  margin-top: clamp(32px, 5vw, 56px);
  padding-bottom: clamp(24px, 4vw, 40px);
}

/* ── Avatar ─────────────────────────────────────────────── */
.profile-avatar {
  width: var(--profile-avatar-sz);
  height: var(--profile-avatar-sz);
  border-radius: var(--profile-radius);
  border: 4px solid #ffffff;
  box-shadow: 0 4px 24px rgba(0, 0, 0, 0.18);
  overflow: hidden;
  background: var(--tg-primary-color);
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
  margin-bottom: 20px;
}
.profile-avatar img,
.profile-avatar .field--name-user-picture img {
  width: 100%;
  height: 100%;
  object-fit: cover;
  display: block;
}
/* Strip the field wrapper's default padding */
.profile-avatar .field--name-user-picture {
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
}
.profile-avatar__initials {
  font-size: 2.8rem;
  font-weight: 700;
  color: #ffffff;
  line-height: 1;
  letter-spacing: -0.02em;
  user-select: none;
}

/* ── Name ───────────────────────────────────────────────── */
.profile-identity__name {
  font-size: clamp(1.6rem, 4vw, 2.4rem);
  font-weight: 700;
  color: var(--tg-black, #0d1b2a);
  margin: 0 0 12px;
  line-height: 1.2;
}

/* ── Role badges ────────────────────────────────────────── */
.profile-identity__roles {
  display: flex;
  flex-wrap: wrap;
  gap: 8px;
  justify-content: center;
  margin-bottom: 20px;
}
.profile-role-badge {
  display: inline-block;
  padding: 4px 14px;
  border-radius: 20px;
  background: rgba(192, 154, 82, 0.12);
  color: var(--tg-primary-color, #c09a52);
  border: 1px solid rgba(192, 154, 82, 0.3);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: 0.04em;
  text-transform: uppercase;
}

/* ── Social links ───────────────────────────────────────── */
.profile-social {
  display: flex;
  flex-wrap: wrap;
  gap: 10px;
  justify-content: center;
}
.profile-social__link {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  width: 40px;
  height: 40px;
  border-radius: 50%;
  background: rgba(13, 27, 42, 0.07);
  color: var(--tg-black, #0d1b2a);
  font-size: 15px;
  text-decoration: none;
  transition:
    background 0.18s ease,
    color 0.18s ease,
    transform 0.18s ease;
}
.profile-social__link:hover {
  background: var(--tg-primary-color, #c09a52);
  color: #ffffff;
}

/* ── Bio ────────────────────────────────────────────────── */
.profile-bio {
  font-size: 1.05rem;
  line-height: 1.75;
  color: var(--tg-body-font-color);
  margin-bottom: 32px;
  text-align: center;
}
.profile-bio p {
  margin-bottom: 0.6em;
}
.profile-bio p:last-child {
  margin-bottom: 0;
}

/* ── Stats bar ──────────────────────────────────────────── */
.profile-stats {
  display: flex;
  justify-content: center;
  gap: clamp(24px, 5vw, 56px);
  padding: 24px 0;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  margin-bottom: 32px;
}
.profile-stat {
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 4px;
}
.profile-stat__value {
  font-size: 1.35rem;
  font-weight: 700;
  color: var(--tg-black, #0d1b2a);
  line-height: 1;
}
.profile-stat__label {
  font-size: 11px;
  font-weight: 600;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--tg-icon-color, #8a9bae);
}

/* ── Edit profile button ────────────────────────────────── */
.profile-actions {
  display: flex;
  justify-content: center;
  margin-bottom: 8px;
}
.profile-edit-btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 10px 28px;
  border-radius: 8px;
  background: var(--tg-primary-color, #c09a52);
  color: #ffffff;
  font-size: 14px;
  font-weight: 600;
  text-decoration: none;
  transition:
    background 0.18s ease,
    transform 0.18s ease,
    box-shadow 0.18s ease;
  box-shadow: 0 2px 10px rgba(192, 154, 82, 0.3);
}
.profile-edit-btn:hover {
  background: color-mix(
    in srgb,
    var(--tg-primary-color, #c09a52) 85%,
    #000 15%
  );
  color: #ffffff;
  box-shadow: 0 4px 16px rgba(192, 154, 82, 0.4);
}
.profile-edit-btn .material-symbols-sharp {
  font-size: 18px;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* ── Articles section ───────────────────────────────────── */
.profile-articles {
  margin-top: clamp(40px, 6vw, 72px);
  padding-top: 40px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}
.profile-articles__heading {
  font-size: clamp(1.25rem, 3vw, 1.65rem);
  font-weight: 700;
  color: var(--tg-black, #0d1b2a);
  margin-bottom: 32px;
  text-align: center;
}
.profile-articles__heading::after {
  content: "";
  display: block;
  width: 48px;
  height: 3px;
  background: var(--tg-primary-color, #c09a52);
  margin: 10px auto 0;
  border-radius: 2px;
}

/* ── Dark mode ──────────────────────────────────────────── */
[data-bs-theme="dark"] .profile-identity__name,
[data-bs-theme="dark"] .profile-stat__value,
[data-bs-theme="dark"] .profile-articles__heading {
  color: #e4eaf0;
}
[data-bs-theme="dark"] .profile-bio {
  color: #c8d0da;
}
[data-bs-theme="dark"] .profile-stats {
  border-color: rgba(255, 255, 255, 0.1);
}
[data-bs-theme="dark"] .profile-articles {
  border-color: rgba(255, 255, 255, 0.1);
}
[data-bs-theme="dark"] .profile-avatar {
  border-color: #1a2b40;
}
[data-bs-theme="dark"] .profile-role-badge {
  background: rgba(192, 154, 82, 0.15);
  border-color: rgba(192, 154, 82, 0.35);
}
[data-bs-theme="dark"] .profile-social__link {
  background: rgba(255, 255, 255, 0.08);
  color: #c8d0da;
}
[data-bs-theme="dark"] .profile-social__link:hover {
  background: var(--tg-primary-color, #c09a52);
  color: #ffffff;
}
[data-bs-theme="dark"] .profile-cover {
  background: linear-gradient(135deg, #060e18 0%, #0d1e35 40%, #8a6c30 100%);
}

/* ── No extra bottom gap — profile already has its own ──── */
.page-user .main {
  padding-bottom: 0;
}

/*=============================
    55. Inline quiz — teaser card, overlay, questions, results, newsletter nudge
===============================*/

/* ─── Design tokens ──────────────────────────────────────────────────────── */
:root {
  --quiz-gold: #c09a52;
  --quiz-gold-light: rgba(192, 154, 82, 0.12);
  --quiz-gold-glow: rgba(192, 154, 82, 0.3);
  --quiz-navy: #0d1b2a;
  --quiz-navy-2: #162843;
  --quiz-radius: 16px;
  --quiz-transition: 0.22s cubic-bezier(0.16, 1, 0.3, 1);
}

/* ═══════════════════════════════════════════════════════════════════════════
   TEASER CARD  (.article-quiz-cta)
   ═══════════════════════════════════════════════════════════════════════════ */

.article-quiz-cta {
  display: flex;
  align-items: flex-start;
  gap: 24px;
  margin: clamp(28px, 5vw, 48px) 0;
  padding: clamp(24px, 4vw, 36px);
  border-radius: var(--quiz-radius);
  background: linear-gradient(
    135deg,
    var(--quiz-navy) 0%,
    var(--quiz-navy-2) 60%,
    #1c3354 100%
  );
  border: 1px solid rgba(192, 154, 82, 0.25);
  box-shadow:
    0 4px 24px rgba(13, 27, 42, 0.18),
    0 0 0 1px rgba(192, 154, 82, 0.1) inset;
  cursor: pointer;
  position: relative;
  overflow: hidden;
  transition:
    transform var(--quiz-transition),
    box-shadow var(--quiz-transition);
}
.article-quiz-cta::before {
  content: "";
  position: absolute;
  top: -60px;
  right: -60px;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(192, 154, 82, 0.15) 0%,
    transparent 70%
  );
  pointer-events: none;
}
.article-quiz-cta:hover {
  box-shadow:
    0 8px 32px rgba(13, 27, 42, 0.28),
    0 0 0 1px rgba(192, 154, 82, 0.2) inset;
}
.article-quiz-cta.is-complete {
  background: linear-gradient(135deg, #0a2010 0%, #0d2918 60%, #1a3d25 100%);
  border-color: rgba(40, 180, 90, 0.3);
}

/* Icon badge */
.article-quiz-cta__icon {
  flex-shrink: 0;
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: var(--quiz-gold-light);
  border: 1px solid var(--quiz-gold-glow);
  display: flex;
  align-items: center;
  justify-content: center;
}
.article-quiz-cta__icon .material-symbols-sharp {
  font-size: 28px;
  color: var(--quiz-gold);
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* Content block */
.article-quiz-cta__content {
  flex: 1;
  min-width: 0;
}

.article-quiz-cta__eyebrow {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--quiz-gold);
  margin: 0 0 6px;
}
.article-quiz-cta__title {
  font-size: clamp(1.1rem, 2.5vw, 1.4rem);
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 12px;
  line-height: 1.3;
}
.article-quiz-cta__meta {
  display: flex;
  flex-wrap: wrap;
  gap: 14px;
  font-size: 12px;
  color: rgba(228, 234, 240, 0.75);
  margin-bottom: 12px;
}
.article-quiz-cta__meta span {
  display: inline-flex;
  align-items: center;
  gap: 5px;
}
.article-quiz-cta__meta .material-symbols-sharp {
  font-size: 15px;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 20;
}
.article-quiz-cta__desc {
  font-size: 0.9rem;
  color: rgba(228, 234, 240, 0.65);
  margin: 0;
  line-height: 1.55;
}

/* Action area */
.article-quiz-cta__actions {
  flex-shrink: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  gap: 12px;
  min-width: 160px;
}
.article-quiz-cta__btn {
  display: inline-flex;
  align-items: center;
  gap: 8px;
  padding: 12px 24px;
  border-radius: 10px;
  background: var(--quiz-gold);
  color: var(--quiz-navy);
  border: none;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  white-space: nowrap;
  transition:
    background var(--quiz-transition),
    transform var(--quiz-transition);
  box-shadow: 0 2px 12px rgba(192, 154, 82, 0.35);
}
.article-quiz-cta__btn .material-symbols-sharp {
  font-size: 18px;
  font-variation-settings:
    "wght" 500,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 20;
}
.article-quiz-cta__btn:hover {
  background: color-mix(in srgb, var(--quiz-gold) 80%, #fff 20%);
}
.article-quiz-cta.is-complete .article-quiz-cta__btn {
  background: #28b45a;
  color: #ffffff;
  box-shadow: 0 2px 12px rgba(40, 180, 90, 0.35);
}
.article-quiz-cta__nudge {
  display: flex;
  align-items: flex-start;
  gap: 6px;
  font-size: 11px;
  color: rgba(228, 234, 240, 0.5);
  text-align: center;
  margin: 0;
  line-height: 1.4;
}
.article-quiz-cta__nudge .material-symbols-sharp {
  font-size: 14px;
  flex-shrink: 0;
  margin-top: 1px;
}
.article-quiz-cta__nudge a {
  color: var(--quiz-gold);
  text-decoration: none;
}
.article-quiz-cta__nudge a:hover {
  text-decoration: underline;
}

/* Mobile: stack vertically */
@media (max-width: 600px) {
  .article-quiz-cta {
    flex-direction: column;
    align-items: stretch;
  }
  .article-quiz-cta__actions {
    align-items: stretch;
  }
  .article-quiz-cta__btn {
    justify-content: center;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   QUIZ OVERLAY
   ═══════════════════════════════════════════════════════════════════════════ */

/* Prevent body scroll while overlay is open */
body.quiz-overlay-open {
  overflow: hidden;
}

.quiz-overlay {
  position: fixed;
  inset: 0;
  z-index: 1080;
  display: flex;
  align-items: center;
  justify-content: center;
  padding: 16px;
}

.quiz-overlay__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(8, 15, 25, 0.7);
  backdrop-filter: blur(4px);
  -webkit-backdrop-filter: blur(4px);
  opacity: 0;
  transition: opacity var(--quiz-transition);
}
.quiz-overlay.is-open .quiz-overlay__backdrop {
  opacity: 1;
}

.quiz-overlay__panel {
  position: relative;
  z-index: 1;
  width: 100%;
  max-width: 640px;
  max-height: 90vh;
  border-radius: 20px;
  background: #ffffff;
  box-shadow:
    0 8px 40px rgba(0, 0, 0, 0.25),
    0 2px 8px rgba(0, 0, 0, 0.1);
  display: flex;
  flex-direction: column;
  overflow: hidden;
  opacity: 0;
  transition:
    transform var(--quiz-transition),
    opacity var(--quiz-transition);
}
.quiz-overlay.is-open .quiz-overlay__panel {
  opacity: 1;
}

/* Panel header */
.quiz-overlay__header {
  display: flex;
  align-items: center;
  gap: 12px;
  padding: 20px 24px 16px;
  border-bottom: 1px solid rgba(0, 0, 0, 0.08);
  flex-shrink: 0;
}
.quiz-overlay__header-icon {
  font-size: 24px;
  color: var(--quiz-gold);
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  flex-shrink: 0;
}
.quiz-overlay__header-title {
  flex: 1;
  font-size: 1rem;
  font-weight: 700;
  color: var(--quiz-navy);
  margin: 0;
  line-height: 1.3;
}
.quiz-overlay__close {
  flex-shrink: 0;
  width: 36px;
  height: 36px;
  border-radius: 8px;
  background: transparent;
  border: none;
  cursor: pointer;
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tg-icon-color, #8a9bae);
  transition:
    background 0.15s ease,
    color 0.15s ease;
}
.quiz-overlay__close:hover {
  background: rgba(0, 0, 0, 0.06);
  color: var(--quiz-navy);
}
.quiz-overlay__close .material-symbols-sharp {
  font-size: 20px;
}

.quiz-overlay__progress-slot {
  flex-shrink: 0;
  padding: 12px 24px 0;
}

/* Scrollable body */
.quiz-overlay__body {
  flex: 1;
  overflow-y: auto;
  padding: 20px 24px 28px;
  outline: none;
  transition: opacity 0.2s ease;
}
.quiz-overlay__body.is-exiting {
  opacity: 0;
}
.quiz-overlay__body.is-entering {
  opacity: 0;
  animation: quizFadeIn 0.25s ease forwards;
}
.quiz-overlay__body.is-loading {
  pointer-events: none;
}

@keyframes quizFadeIn {
  from {
    opacity: 0;
  }
  to {
    opacity: 1;
  }
}

/* Loading state */
.quiz-overlay__loading {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 12px;
  padding: 48px 0;
  color: var(--tg-icon-color, #8a9bae);
}
.quiz-overlay__spinner {
  font-size: 40px;
  animation: quizSpin 1s linear infinite;
  font-variation-settings:
    "wght" 200,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 40;
}
@keyframes quizSpin {
  from {
    transform: rotate(0deg);
  }
  to {
    transform: rotate(360deg);
  }
}
.quiz-overlay__error {
  text-align: center;
  padding: 32px;
  color: var(--tg-body-font-color);
}
.quiz-overlay__error .material-symbols-sharp {
  font-size: 40px;
  color: #e05252;
  display: block;
  margin-bottom: 12px;
}

/* Mobile: full-screen panel */
@media (max-width: 600px) {
  .quiz-overlay {
    padding: 0;
    align-items: flex-end;
  }
  .quiz-overlay__panel {
    max-height: 92vh;
    border-radius: 20px 20px 0 0;
  }
}

/* ═══════════════════════════════════════════════════════════════════════════
   QUIZ PROGRESS BAR  (.zaira-quiz-progress)
   ═══════════════════════════════════════════════════════════════════════════ */

.zaira-quiz-progress {
  margin-bottom: 8px;
}
.zaira-quiz-progress__meta {
  display: flex;
  justify-content: space-between;
  font-size: 12px;
  font-weight: 600;
  color: var(--tg-icon-color, #8a9bae);
  letter-spacing: 0.03em;
  text-transform: uppercase;
  margin-bottom: 6px;
}
.zaira-quiz-progress__track {
  height: 6px;
  border-radius: 3px;
  background: rgba(0, 0, 0, 0.08);
  overflow: hidden;
}
.zaira-quiz-progress__fill {
  height: 100%;
  border-radius: 3px;
  background: linear-gradient(
    90deg,
    var(--quiz-gold) 0%,
    color-mix(in srgb, var(--quiz-gold) 70%, #fff 30%) 100%
  );
  transition: width 0.4s cubic-bezier(0.34, 1.56, 0.64, 1);
  min-width: 6px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   QUIZ QUESTION + ANSWERING FORM
   ═══════════════════════════════════════════════════════════════════════════ */

.zaira-quiz-question {
  margin-bottom: 20px;
}
.zaira-quiz-question__body,
.zaira-quiz-question__body p {
  font-size: 1.05rem;
  font-weight: 600;
  color: var(--quiz-navy);
  line-height: 1.55;
  margin: 0;
}

#quiz-question-answering-form.answering-form {
  margin: 0;
}

/* ── Answer options: radios and checkboxes as card rows ──── */
#quiz-question-answering-form .form-radios,
#quiz-question-answering-form .form-checkboxes,
#quiz-question-answering-form .form-type-radios > .form-radios,
#quiz-question-answering-form .form-type-checkboxes > .form-checkboxes {
  display: flex;
  flex-direction: column;
  gap: 10px;
  margin: 16px 0 24px;
}

#quiz-question-answering-form .form-type-radio,
#quiz-question-answering-form .form-type-checkbox {
  position: relative;
  margin: 0;
}

#quiz-question-answering-form .form-type-radio label,
#quiz-question-answering-form .form-type-checkbox label {
  display: flex;
  align-items: center;
  gap: 14px;
  padding: 14px 18px;
  border-radius: 12px;
  border: 2px solid rgba(0, 0, 0, 0.1);
  background: #f9f8f7;
  cursor: pointer;
  font-size: 0.95rem;
  font-weight: 500;
  color: var(--quiz-navy);
  line-height: 1.45;
  transition:
    border-color 0.15s ease,
    background 0.15s ease,
    box-shadow 0.15s ease;
  user-select: none;
}
#quiz-question-answering-form .form-type-radio label:hover,
#quiz-question-answering-form .form-type-checkbox label:hover {
  border-color: var(--quiz-gold);
  background: var(--quiz-gold-light);
}

/* Hide native input, show custom indicator */
#quiz-question-answering-form .form-type-radio input[type="radio"],
#quiz-question-answering-form .form-type-checkbox input[type="checkbox"] {
  appearance: none;
  -webkit-appearance: none;
  flex-shrink: 0;
  width: 20px;
  height: 20px;
  border: 2px solid rgba(0, 0, 0, 0.2);
  border-radius: 50%; /* radio */
  background: #fff;
  transition:
    border-color 0.15s ease,
    background 0.15s ease;
  position: relative;
}
#quiz-question-answering-form .form-type-checkbox input[type="checkbox"] {
  border-radius: 5px; /* checkbox */
}
#quiz-question-answering-form .form-type-radio input[type="radio"]:checked,
#quiz-question-answering-form
  .form-type-checkbox
  input[type="checkbox"]:checked {
  background: var(--quiz-gold);
  border-color: var(--quiz-gold);
}
#quiz-question-answering-form
  .form-type-radio
  input[type="radio"]:checked::after {
  content: "";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  width: 8px;
  height: 8px;
  border-radius: 50%;
  background: #fff;
}
#quiz-question-answering-form
  .form-type-checkbox
  input[type="checkbox"]:checked::after {
  content: "✓";
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  color: #fff;
  font-size: 12px;
  line-height: 1;
}

/* Selected state: highlight the whole card */
#quiz-question-answering-form .form-type-radio:has(input:checked) label,
#quiz-question-answering-form .form-type-checkbox:has(input:checked) label {
  border-color: var(--quiz-gold);
  background: var(--quiz-gold-light);
  box-shadow: 0 0 0 3px var(--quiz-gold-glow);
}

/* Feedback states (after question is graded) */
#quiz-question-answering-form .q-correct label {
  border-color: #28b45a !important;
  background: #edfaf3 !important;
}
#quiz-question-answering-form .q-wrong label {
  border-color: #e05252 !important;
  background: #fdf1f1 !important;
}
#quiz-question-answering-form .q-waiting label {
  border-color: #e0a030 !important;
  background: #fff9ed !important;
}

/* Navigation buttons */
#quiz-question-answering-form .form-actions,
#quiz-question-answering-form .form-type-actions,
#quiz-question-answering-form [data-drupal-selector*="navigation"] {
  display: flex;
  gap: 12px;
  flex-wrap: wrap;
  margin-top: 8px;
}

#quiz-question-answering-form #edit-navigation-submit,
#quiz-question-answering-form .form-submit {
  padding: 12px 32px;
  border-radius: 10px;
  background: var(--quiz-gold);
  color: var(--quiz-navy);
  border: none;
  font-size: 14px;
  font-weight: 700;
  cursor: pointer;
  transition:
    background var(--quiz-transition),
    transform var(--quiz-transition);
  box-shadow: 0 2px 10px rgba(192, 154, 82, 0.3);
}
#quiz-question-answering-form #edit-navigation-submit:hover {
  background: color-mix(in srgb, var(--quiz-gold) 80%, #fff 20%);
}
#quiz-question-answering-form #edit-navigation-skip {
  padding: 12px 24px;
  border-radius: 10px;
  background: transparent;
  color: var(--tg-icon-color, #8a9bae);
  border: 1px solid rgba(0, 0, 0, 0.12);
  font-size: 14px;
  cursor: pointer;
  transition:
    background 0.15s ease,
    color 0.15s ease;
}
#quiz-question-answering-form #edit-navigation-skip:hover {
  background: rgba(0, 0, 0, 0.05);
  color: var(--quiz-navy);
}
#quiz-question-answering-form [type="submit"]:disabled {
  opacity: 0.55;
  cursor: not-allowed;
  transform: none;
}

/* ═══════════════════════════════════════════════════════════════════════════
   QUIZ RESULT SCORE  (.zaira-quiz-score)
   ═══════════════════════════════════════════════════════════════════════════ */

.zaira-quiz-score {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 24px 0 8px;
}
.zaira-quiz-score__circle-wrap {
  position: relative;
  width: 140px;
  height: 140px;
  margin-bottom: 16px;
}
.zaira-quiz-score__ring {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
}
.zaira-quiz-score__ring-track {
  fill: none;
  stroke: rgba(0, 0, 0, 0.08);
  stroke-width: 8;
}
.zaira-quiz-score__ring-fill {
  fill: none;
  stroke: var(--quiz-gold);
  stroke-width: 8;
  stroke-linecap: round;
  stroke-dasharray: 0 263.8;
  transition: stroke-dasharray 0.8s cubic-bezier(0.34, 1.56, 0.64, 1) 0.3s;
}
.zaira-quiz-score--excellent .zaira-quiz-score__ring-fill {
  stroke: #28b45a;
}
.zaira-quiz-score--try-again .zaira-quiz-score__ring-fill {
  stroke: #e05252;
}

.zaira-quiz-score__center {
  position: absolute;
  inset: 0;
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 2px;
}
.zaira-quiz-score__pct {
  font-size: 1.9rem;
  font-weight: 800;
  color: var(--quiz-navy);
  line-height: 1;
}
.zaira-quiz-score__verdict {
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.06em;
  text-transform: uppercase;
  color: var(--quiz-gold);
}
.zaira-quiz-score--excellent .zaira-quiz-score__verdict {
  color: #28b45a;
}
.zaira-quiz-score--try-again .zaira-quiz-score__verdict {
  color: #e05252;
}

.zaira-quiz-score__detail {
  text-align: center;
}
.zaira-quiz-score__points {
  font-size: 0.9rem;
  color: var(--tg-icon-color, #8a9bae);
  margin: 0;
}

/* ═══════════════════════════════════════════════════════════════════════════
   QUIZ RESULT SUMMARY + NEWSLETTER NUDGE
   ═══════════════════════════════════════════════════════════════════════════ */

.zaira-quiz-result-summary {
  margin-top: 20px;
}

.zaira-quiz-result-summary__text {
  font-size: 0.95rem;
  color: var(--tg-body-font-color);
  line-height: 1.65;
  margin-bottom: 24px;
  padding: 16px 20px;
  border-radius: 12px;
  background: rgba(0, 0, 0, 0.04);
  border-left: 3px solid var(--quiz-gold);
}

/* Newsletter nudge */
.zaira-quiz-newsletter {
  display: flex;
  align-items: flex-start;
  gap: 16px;
  margin-top: 28px;
  padding: 20px 24px;
  border-radius: 14px;
  background: linear-gradient(
    135deg,
    var(--quiz-navy) 0%,
    var(--quiz-navy-2) 100%
  );
  border: 1px solid rgba(192, 154, 82, 0.22);
}
.zaira-quiz-newsletter__icon {
  flex-shrink: 0;
  width: 44px;
  height: 44px;
  border-radius: 12px;
  background: var(--quiz-gold-light);
  border: 1px solid var(--quiz-gold-glow);
  display: flex;
  align-items: center;
  justify-content: center;
}
.zaira-quiz-newsletter__icon .material-symbols-sharp {
  font-size: 22px;
  color: var(--quiz-gold);
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}
.zaira-quiz-newsletter__heading {
  font-size: 0.95rem;
  font-weight: 700;
  color: #ffffff;
  margin: 0 0 6px;
}
.zaira-quiz-newsletter__body {
  font-size: 0.85rem;
  color: rgba(228, 234, 240, 0.65);
  margin: 0 0 14px;
  line-height: 1.55;
}
.zaira-quiz-newsletter__cta {
  display: inline-flex;
  align-items: center;
  gap: 6px;
  padding: 9px 22px;
  border-radius: 8px;
  background: var(--quiz-gold);
  color: var(--quiz-navy);
  font-size: 13px;
  font-weight: 700;
  text-decoration: none;
  transition:
    background var(--quiz-transition),
    transform var(--quiz-transition);
}
.zaira-quiz-newsletter__cta:hover {
  background: color-mix(in srgb, var(--quiz-gold) 80%, #fff 20%);
  color: var(--quiz-navy);
}
.zaira-quiz-newsletter__cta .material-symbols-sharp {
  font-size: 16px;
}

/* ═══════════════════════════════════════════════════════════════════════════
   DARK MODE
   ═══════════════════════════════════════════════════════════════════════════ */

/* Teaser: already uses dark (navy) background — no change needed. */

[data-bs-theme="dark"] .quiz-overlay__panel {
  background: #0f1e35;
  box-shadow:
    0 8px 40px rgba(0, 0, 0, 0.55),
    0 2px 8px rgba(0, 0, 0, 0.3);
}
[data-bs-theme="dark"] .quiz-overlay__header {
  border-color: rgba(255, 255, 255, 0.08);
}
[data-bs-theme="dark"] .quiz-overlay__header-title {
  color: #e4eaf0;
}
[data-bs-theme="dark"] .quiz-overlay__close:hover {
  background: rgba(255, 255, 255, 0.08);
  color: #e4eaf0;
}

[data-bs-theme="dark"] .zaira-quiz-progress__track {
  background: rgba(255, 255, 255, 0.1);
}

/* Question text */
[data-bs-theme="dark"] .zaira-quiz-question__body,
[data-bs-theme="dark"] .zaira-quiz-question__body p {
  color: #e4eaf0;
}

/* Answer option cards */
[data-bs-theme="dark"] #quiz-question-answering-form .form-type-radio label,
[data-bs-theme="dark"] #quiz-question-answering-form .form-type-checkbox label {
  background: #162843;
  border-color: rgba(255, 255, 255, 0.1);
  color: #c8d0da;
}
[data-bs-theme="dark"]
  #quiz-question-answering-form
  .form-type-radio
  label:hover,
[data-bs-theme="dark"]
  #quiz-question-answering-form
  .form-type-checkbox
  label:hover {
  border-color: var(--quiz-gold);
  background: rgba(192, 154, 82, 0.1);
}
[data-bs-theme="dark"]
  #quiz-question-answering-form
  .form-type-radio
  input[type="radio"],
[data-bs-theme="dark"]
  #quiz-question-answering-form
  .form-type-checkbox
  input[type="checkbox"] {
  background: #0d1b2a;
  border-color: rgba(255, 255, 255, 0.2);
}
[data-bs-theme="dark"]
  #quiz-question-answering-form
  .form-type-radio:has(input:checked)
  label,
[data-bs-theme="dark"]
  #quiz-question-answering-form
  .form-type-checkbox:has(input:checked)
  label {
  border-color: var(--quiz-gold);
  background: rgba(192, 154, 82, 0.12);
}

/* Skip button */
[data-bs-theme="dark"] #quiz-question-answering-form #edit-navigation-skip {
  border-color: rgba(255, 255, 255, 0.12);
  color: rgba(228, 234, 240, 0.55);
}
[data-bs-theme="dark"]
  #quiz-question-answering-form
  #edit-navigation-skip:hover {
  background: rgba(255, 255, 255, 0.06);
  color: #e4eaf0;
}

/* Score circle */
[data-bs-theme="dark"] .zaira-quiz-score__pct {
  color: #e4eaf0;
}
[data-bs-theme="dark"] .zaira-quiz-score__ring-track {
  stroke: rgba(255, 255, 255, 0.1);
}

[data-bs-theme="dark"] .zaira-quiz-result-summary__text {
  background: rgba(255, 255, 255, 0.05);
  color: #c8d0da;
}

/*=============================
    56. Flag bookmark — post-meta icon + profile bookmarks
===============================*/

/* ── Flag inside the overflow panel ─────────────────────────────────────────
   The flag module wraps its link in two extra divs:
     div.meta-overflow__item.meta-overflow__item--flag
       div.flag.zaira-flag
         a.zaira-flag__btn   ← the only element that should carry visual state

   Strategy: make the outer two divs invisible pass-throughs (no padding, no
   hover of their own) and replicate .meta-overflow__item styling on the <a>.
   ─────────────────────────────────────────────────────────────────────────── */

/* Outer wrapper: remove padding so the inner <a> controls all spacing */
.meta-overflow__item.meta-overflow__item--flag {
  padding: 0;
}
/* Suppress hover background on the outer div — only the inner <a> should react */
.meta-overflow__item.meta-overflow__item--flag:hover,
.meta-overflow__item.meta-overflow__item--flag:focus-visible {
  background: transparent;
  color: inherit;
}
/* Flag module wrapper divs — transparent layout containers */
.meta-overflow__item--flag .flag,
.meta-overflow__item--flag .zaira-flag {
  display: block;
  width: 100%;
}

/* ── The actual link (.zaira-flag__btn) — identical to .meta-overflow__item ── */
.zaira-flag__btn {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  border-radius: 8px;
  text-decoration: none;
  font-size: 13px;
  font-weight: 500;
  text-transform: none;
  letter-spacing: 0;
  white-space: nowrap;
  color: var(--tg-body-font-color);
  width: 100%;
  transition:
    background 0.12s ease,
    color 0.12s ease;
  cursor: pointer;
}
.zaira-flag__btn:hover,
.zaira-flag__btn:focus-visible {
  background: rgba(0, 0, 0, 0.05);
  color: var(--tg-primary-color, #c09a52);
  outline: none;
}

/* ── Icon — identical to .meta-overflow__item .material-symbols-sharp ── */
.zaira-flag__icon {
  font-size: 16px;
  line-height: 1;
  flex-shrink: 0;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  transition:
    color 0.15s ease,
    font-variation-settings 0.15s ease;
}
/* Filled icon when already bookmarked */
.zaira-flag__icon--filled {
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
  color: var(--tg-primary-color, #c09a52);
}

/* "Remove bookmark" row: hover turns red as a delete affordance */
.action-unflag .zaira-flag__btn:hover {
  color: #d94f4f;
  background: rgba(217, 79, 79, 0.06);
}
.action-unflag .zaira-flag__btn:hover .zaira-flag__icon {
  color: #d94f4f;
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

/* AJAX "waiting" pulse while the request is in flight */
.flag-waiting .zaira-flag__icon {
  animation: flagPulse 0.55s ease-in-out infinite alternate;
}
@keyframes flagPulse {
  from {
    opacity: 1;
  }
  to {
    opacity: 0.3;
  }
}

/* Denied / anonymous-only state */
.zaira-flag__denied {
  display: flex;
  align-items: center;
  gap: 10px;
  padding: 9px 14px;
  font-size: 13px;
  color: var(--tg-icon-color, #8a9bae);
  cursor: default;
  opacity: 0.6;
}

/* ── Dark mode ── */
[data-bs-theme="dark"] .zaira-flag__btn {
  color: #d4dbe4;
}
[data-bs-theme="dark"] .zaira-flag__btn:hover {
  background: rgba(255, 255, 255, 0.07);
  color: var(--tg-primary-color, #c09a52);
}
[data-bs-theme="dark"] .action-unflag .zaira-flag__btn:hover {
  color: #e07070;
  background: rgba(217, 79, 79, 0.1);
}

/* ── Quiz access-denied card (.quiz-access-denied) ───────────────────────── */
.quiz-access-denied {
  display: flex;
  flex-direction: column;
  align-items: center;
  text-align: center;
  padding: clamp(24px, 5vw, 40px) 24px;
  gap: 14px;
}
.quiz-access-denied__icon {
  font-size: 52px;
  color: var(--quiz-gold, #c09a52);
  font-variation-settings:
    "wght" 200,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 48;
  opacity: 0.85;
}
.quiz-access-denied__heading {
  font-size: 1.15rem;
  font-weight: 700;
  color: var(--tg-black, #0d1b2a);
  margin: 0;
}
.quiz-access-denied__body {
  font-size: 0.9rem;
  line-height: 1.65;
  color: var(--tg-icon-color, #8a9bae);
  max-width: 42ch;
  margin: 0;
}
.quiz-access-denied__actions {
  display: flex;
  flex-wrap: wrap;
  gap: 12px;
  justify-content: center;
  margin-top: 6px;
}
.quiz-access-denied__btn {
  display: inline-flex;
  align-items: center;
  gap: 7px;
  padding: 10px 24px;
  border-radius: 9px;
  font-size: 13px;
  font-weight: 600;
  text-decoration: none;
  transition:
    background var(--quiz-transition, 0.22s ease),
    transform var(--quiz-transition, 0.22s ease);
}
.quiz-access-denied__btn .material-symbols-sharp {
  font-size: 16px;
}
.quiz-access-denied__btn--primary {
  background: var(--quiz-gold, #c09a52);
  color: var(--quiz-navy, #0d1b2a);
  box-shadow: 0 2px 10px rgba(192, 154, 82, 0.3);
}
.quiz-access-denied__btn--primary:hover {
  background: color-mix(in srgb, var(--quiz-gold, #c09a52) 80%, #fff 20%);
  color: var(--quiz-navy, #0d1b2a);
}
.quiz-access-denied__btn--secondary {
  background: rgba(0, 0, 0, 0.06);
  color: var(--tg-body-font-color);
  border: 1px solid rgba(0, 0, 0, 0.1);
}
.quiz-access-denied__btn--secondary:hover {
  background: rgba(0, 0, 0, 0.1);
  color: var(--tg-body-font-color);
}

/* Teaser CTA: access-denied state */
.article-quiz-cta.is-access-denied .article-quiz-cta__btn {
  background: rgba(255, 255, 255, 0.15);
  color: rgba(255, 255, 255, 0.7);
  box-shadow: none;
  cursor: default;
}

/* Reassurance footnote below the action buttons */
.quiz-access-denied__footnote {
  font-size: 11px;
  color: var(--tg-icon-color, #8a9bae);
  margin: 8px 0 0;
  text-align: center;
}

/* Dark mode */
[data-bs-theme="dark"] .quiz-access-denied__heading {
  color: #e4eaf0;
}
[data-bs-theme="dark"] .quiz-access-denied__btn--secondary {
  background: rgba(255, 255, 255, 0.08);
  border-color: rgba(255, 255, 255, 0.12);
  color: #c8d0da;
}
[data-bs-theme="dark"] .quiz-access-denied__btn--secondary:hover {
  background: rgba(255, 255, 255, 0.13);
  color: #e4eaf0;
}

/* ── Profile page: bookmarks section ─────────────────────────────────────── */
.profile-bookmarks {
  margin-top: clamp(40px, 6vw, 72px);
  padding-top: 40px;
  border-top: 1px solid rgba(0, 0, 0, 0.08);
}

.profile-bookmarks__icon {
  font-size: 1.2rem;
  vertical-align: -2px;
  margin-right: 6px;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  color: var(--tg-primary-color, #c09a52);
}

/* Override the flag_bookmark view's default table style to a card grid */
.profile-bookmarks .view-flag-bookmark .views-table {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
  gap: 16px;
  width: 100%;
  border: none;
}
.profile-bookmarks .view-flag-bookmark thead {
  display: none;
}
.profile-bookmarks .view-flag-bookmark tbody {
  display: contents;
}
.profile-bookmarks .view-flag-bookmark .views-row {
  display: flex;
  flex-direction: column;
  gap: 10px;
  padding: 18px 20px;
  border-radius: 12px;
  background: #ffffff;
  border: 1px solid rgba(0, 0, 0, 0.08);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.05);
  transition:
    box-shadow 0.18s ease,
    transform 0.18s ease;
}
.profile-bookmarks .view-flag-bookmark .views-row:hover {
  box-shadow: 0 4px 16px rgba(0, 0, 0, 0.1);
}
.profile-bookmarks .view-flag-bookmark .views-field-title a {
  font-size: 0.95rem;
  font-weight: 600;
  color: var(--tg-black, #0d1b2a);
  text-decoration: none;
  line-height: 1.4;
  display: block;
}
.profile-bookmarks .view-flag-bookmark .views-field-title a:hover {
  color: var(--tg-primary-color, #c09a52);
}
.profile-bookmarks .view-flag-bookmark .views-field-created,
.profile-bookmarks .view-flag-bookmark .views-field-created-1 {
  font-size: 11px;
  color: var(--tg-icon-color, #8a9bae);
}
/* Flag (unflag) link within the bookmark card — compact */
.profile-bookmarks .view-flag-bookmark .zaira-flag__btn {
  padding: 6px 10px;
  font-size: 12px;
}
.profile-bookmarks .view-flag-bookmark .zaira-flag__icon {
  font-size: 14px;
}

/* Empty state */
.profile-bookmarks__empty {
  text-align: center;
  padding: 48px 24px;
  color: var(--tg-icon-color, #8a9bae);
}
.profile-bookmarks__empty-icon {
  font-size: 48px;
  display: block;
  margin: 0 auto 16px;
  color: rgba(192, 154, 82, 0.4);
  font-variation-settings:
    "wght" 200,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 48;
}
.profile-bookmarks__empty p {
  margin: 0 0 8px;
  font-size: 0.95rem;
}
.profile-bookmarks__empty-hint {
  font-size: 0.85rem !important;
}
.profile-bookmarks__inline-icon {
  font-size: 15px;
  vertical-align: -3px;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 20;
}

/* Dark mode */
[data-bs-theme="dark"] .profile-bookmarks {
  border-color: rgba(255, 255, 255, 0.1);
}
[data-bs-theme="dark"] .profile-bookmarks .view-flag-bookmark .views-row {
  background: #162843;
  border-color: rgba(255, 255, 255, 0.08);
  box-shadow: 0 2px 8px rgba(0, 0, 0, 0.2);
}
[data-bs-theme="dark"]
  .profile-bookmarks
  .view-flag-bookmark
  .views-field-title
  a {
  color: #e4eaf0;
}
[data-bs-theme="dark"]
  .profile-bookmarks
  .view-flag-bookmark
  .views-field-title
  a:hover {
  color: var(--tg-primary-color, #c09a52);
}

/*=============================
    57. User edit form — label visibility
===============================*/

/* Programmatic form-label class (added via zaira_form_user_form_alter) gives
   Bootstrap's native margin-bottom: 0.5rem. The rules below reinforce visual
   prominence regardless of which browser or which upstream rule wins.       */

/* form-label added programmatically — ensure it is always visible */
#user-form label.form-label {
  display: block !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--tg-heading-font-color, #0d1b2a) !important;
  margin-bottom: 0.45rem !important;
  line-height: 1.4 !important;
}

/* Fallback for any label that didn't get form-label (e.g. nested widgets) */
#user-form .js-form-item > label,
#user-form .js-form-item .js-form-item > label {
  display: block !important;
  font-size: 0.875rem !important;
  font-weight: 600 !important;
  color: var(--tg-heading-font-color, #0d1b2a) !important;
  margin-bottom: 0.45rem !important;
}

/* "Account information" and similar fieldset legends */
#user-form fieldset legend,
#user-form .fieldgroup legend {
  font-size: 1rem !important;
  font-weight: 700 !important;
  color: var(--tg-heading-font-color, #0d1b2a) !important;
}

/* Dark mode */
[data-bs-theme="dark"] #user-form label.form-label,
[data-bs-theme="dark"] #user-form .js-form-item > label,
[data-bs-theme="dark"] #user-form .js-form-item .js-form-item > label,
[data-bs-theme="dark"] #user-form fieldset legend {
  color: #e4eaf0 !important;
}

/*=============================
    Publisher product page — full template
===============================*/

/* ── Hero ──────────────────────────────────────────────────────────── */
.pub-product__hero {
  background: var(--tg-white, #fff);
  border-bottom: 1px solid var(--tg-border-color, #e2ddd7);
  padding-block: clamp(3rem, 7vw, 5.5rem);
}
[data-bs-theme="dark"] .pub-product__hero {
  background: var(--tg-secondary-color, #0d1b2a);
  border-color: rgba(255, 255, 255, 0.08);
}
.pub-product__hero-grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(2rem, 5vw, 4rem);
  align-items: start;
}
.pub-product__badge {
  display: inline-block;
  font-size: 0.675rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.25rem 0.875rem;
  border-radius: 999px;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  margin-bottom: 1rem;
}
.pub-product__title {
  font-size: clamp(1.75rem, 3vw + 0.5rem, 2.75rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: var(--tg-heading-font-color, #0d1b2a);
  margin-bottom: 0.875rem;
}
[data-bs-theme="dark"] .pub-product__title {
  color: #e4eaf0;
}
.pub-product__tagline {
  font-size: 1rem;
  color: var(--tg-body-font-color, #3d4a56);
  margin-bottom: 1.75rem;
  line-height: 1.6;
}
.pub-product__price-block {
  display: flex;
  align-items: baseline;
  gap: 0.5rem;
  margin-bottom: 1.75rem;
}
.pub-product__currency {
  font-size: 1.125rem;
  font-weight: 600;
  color: var(--tg-body-font-color, #3d4a56);
}
.pub-product__amount {
  font-size: clamp(2.25rem, 4vw, 3rem);
  font-weight: 700;
  letter-spacing: -0.04em;
  color: var(--tg-heading-font-color, #0d1b2a);
  line-height: 1;
}
[data-bs-theme="dark"] .pub-product__amount {
  color: #e4eaf0;
}
.pub-product__vat {
  font-size: 0.8rem;
  color: var(--tg-icon-color, #6b788a);
}
.pub-product__cart {
  margin-bottom: 1.5rem;
}
/* Style Commerce's add-to-cart button */
.pub-product__cart .btn-primary,
.pub-product__cart input[type="submit"],
.pub-product__cart button[type="submit"] {
  background: var(--tg-primary-color, #c09a52) !important;
  border-color: var(--tg-primary-color, #c09a52) !important;
  padding: 0.875rem 2rem !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  border-radius: 8px !important;
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease !important;
}
.pub-product__cart .btn-primary:hover,
.pub-product__cart input[type="submit"]:hover,
.pub-product__cart button[type="submit"]:hover {
  background: color-mix(
    in srgb,
    var(--tg-primary-color, #c09a52) 80%,
    #000 20%
  ) !important;
  box-shadow: 0 4px 16px rgba(192, 154, 82, 0.35) !important;
}
.pub-product__guarantees {
  display: flex;
  gap: 1.25rem;
  flex-wrap: wrap;
  font-size: 0.8125rem;
  color: var(--tg-icon-color, #6b788a);
}
.pub-product__guarantees span {
  display: flex;
  align-items: center;
  gap: 0.375rem;
}
.pub-product__guarantees .material-symbols-sharp {
  font-size: 16px;
}

/* Includes card (right side) */
.pub-product__includes-card {
  background: var(--tg-white, #fff);
  border: 1px solid var(--tg-border-color, #e2ddd7);
  border-radius: 12px;
  padding: 1.75rem;
  box-shadow: 0 2px 16px rgba(13, 27, 42, 0.06);
}
[data-bs-theme="dark"] .pub-product__includes-card {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.1);
}
.pub-product__includes-heading {
  font-size: 1rem;
  font-weight: 700;
  color: var(--tg-heading-font-color, #0d1b2a);
  margin-bottom: 1rem;
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
[data-bs-theme="dark"] .pub-product__includes-heading {
  color: #e4eaf0;
}
.pub-product__includes-list {
  list-style: none;
  padding: 0;
  margin: 0 0 1.25rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.pub-product__includes-list li {
  display: flex;
  gap: 0.625rem;
  font-size: 0.9rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.5;
}
.pub-product__includes-list li::before {
  content: "✓";
  color: var(--tg-primary-color, #c09a52);
  font-weight: 700;
  flex-shrink: 0;
}
.pub-product__social-proof {
  padding-top: 1rem;
  border-top: 1px solid var(--tg-border-color, #e2ddd7);
  font-size: 0.8125rem;
  color: var(--tg-icon-color, #6b788a);
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  line-height: 1.5;
}
.pub-product__social-proof .material-symbols-sharp {
  font-size: 18px;
  flex-shrink: 0;
}

/* ── Trust strip ───────────────────────────────────────────────────── */
.pub-product__trust-strip {
  background: var(--tg-secondary-color, #0d1b2a);
  padding-block: 1rem;
}
.pub-product__trust-list {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  align-items: center;
  justify-content: center;
  gap: 2.5rem;
  flex-wrap: wrap;
}
.pub-product__trust-list li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.75);
}
.pub-product__trust-list .material-symbols-sharp {
  font-size: 18px;
  opacity: 0.7;
}

/* ── Tabs ──────────────────────────────────────────────────────────── */
.pub-product__tabs-section {
  padding-block: clamp(3rem, 6vw, 5rem);
  background: var(--tg-white, #fff);
}
[data-bs-theme="dark"] .pub-product__tabs-section {
  background: var(--tg-secondary-color, #0d1b2a);
}
.pub-product__tab-nav {
  border-bottom: 2px solid var(--tg-border-color, #e2ddd7);
  gap: 0.25rem;
  margin-bottom: 2rem;
}
[data-bs-theme="dark"] .pub-product__tab-nav {
  border-color: rgba(255, 255, 255, 0.1);
}
.pub-product__tab-nav .nav-link {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.9375rem;
  font-weight: 600;
  color: var(--tg-icon-color, #6b788a);
  border: none;
  border-bottom: 2px solid transparent;
  border-radius: 0;
  padding: 0.75rem 1.25rem;
  margin-bottom: -2px;
  transition:
    color 0.18s ease,
    border-color 0.18s ease;
}
.pub-product__tab-nav .nav-link:hover {
  color: var(--tg-heading-font-color, #0d1b2a);
  border-color: var(--tg-border-color, #e2ddd7);
}
.pub-product__tab-nav .nav-link.active {
  color: var(--tg-primary-color, #c09a52);
  border-color: var(--tg-primary-color, #c09a52);
  background: transparent;
}
.pub-product__tab-pane {
  padding-top: 0.5rem;
}

.pub-product__desc-summary {
  font-size: 1rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.75;
  max-width: 68ch;
  margin-bottom: 2rem;
}
.pub-product__desc-includes {
  list-style: none;
  padding: 0;
  margin: 0 0 2rem;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.pub-product__desc-includes li {
  display: flex;
  gap: 0.75rem;
  font-size: 0.9375rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.55;
}
.pub-product__desc-includes li::before {
  content: "✓";
  color: var(--tg-primary-color, #c09a52);
  font-weight: 700;
  flex-shrink: 0;
}
.pub-product__urgency {
  display: flex;
  align-items: flex-start;
  gap: 0.625rem;
  background: rgba(192, 154, 82, 0.08);
  border: 1px solid rgba(192, 154, 82, 0.25);
  border-radius: 8px;
  padding: 0.875rem 1.125rem;
  font-size: 0.875rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.55;
}
.pub-product__urgency .material-symbols-sharp {
  font-size: 20px;
  color: var(--tg-primary-color, #c09a52);
  flex-shrink: 0;
}

/* Submit tab */
.pub-product__submit-steps {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  margin-bottom: 2rem;
}
.pub-product__submit-step {
  display: flex;
  gap: 1rem;
  align-items: flex-start;
}
.pub-product__submit-step-num {
  width: 32px;
  height: 32px;
  border-radius: 50%;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  display: flex;
  align-items: center;
  justify-content: center;
  flex-shrink: 0;
}
.pub-product__submit-step p {
  font-size: 0.9375rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.6;
  padding-top: 0.375rem;
  margin: 0;
}

/* FAQ tab */
.pub-product__faq-item {
  border-color: var(--tg-border-color, #e2ddd7);
}
.pub-product__faq-body {
  font-size: 0.9375rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.7;
}
.pub-product__faq-cta {
  margin-top: 2rem;
  display: flex;
  align-items: center;
  gap: 1rem;
  font-size: 0.9rem;
  color: var(--tg-icon-color, #6b788a);
}

/* ── Responsive ────────────────────────────────────────────────────── */
@media (max-width: 900px) {
  .pub-product__hero-grid {
    grid-template-columns: 1fr;
  }
  .pub-product__trust-list {
    gap: 1.25rem;
  }
}
@media (max-width: 600px) {
  .pub-product__tab-nav .nav-link {
    padding: 0.625rem 0.875rem;
    font-size: 0.875rem;
  }
  .pub-product__tab-nav .nav-link .material-symbols-sharp {
    display: none;
  }
  .pub-product__trust-list {
    justify-content: flex-start;
  }
}

/*=============================
    Publisher product teaser card (View grid)
===============================*/
.pub-teaser {
  background: var(--tg-white, #fff);
  border: 1px solid var(--tg-border-color, #e2ddd7);
  border-radius: 12px;
  padding: 1.75rem;
  display: flex;
  flex-direction: column;
  height: 100%;
  transition:
    box-shadow 0.2s ease,
    border-color 0.2s ease;
}
.pub-teaser:hover {
  box-shadow: 0 6px 24px rgba(13, 27, 42, 0.1);
  border-color: rgba(192, 154, 82, 0.3);
}
[data-bs-theme="dark"] .pub-teaser {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}
.pub-teaser__head {
  display: flex;
  align-items: center;
  gap: 0.75rem;
  margin-bottom: 1.125rem;
}
.pub-teaser__icon {
  width: 44px;
  height: 44px;
  border-radius: 8px;
  background: rgba(192, 154, 82, 0.1);
  display: flex;
  align-items: center;
  justify-content: center;
  color: var(--tg-primary-color, #c09a52);
  flex-shrink: 0;
}
.pub-teaser__badge {
  font-size: 0.675rem;
  font-weight: 700;
  letter-spacing: 0.08em;
  text-transform: uppercase;
  padding: 0.2rem 0.75rem;
  border-radius: 999px;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
}
.pub-teaser__title {
  font-size: 1.2rem;
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--tg-heading-font-color, #0d1b2a);
  margin-bottom: 0.5rem;
}
.pub-teaser__title a {
  color: inherit;
  text-decoration: none;
}
.pub-teaser__title a:hover {
  color: var(--tg-primary-color, #c09a52);
}
[data-bs-theme="dark"] .pub-teaser__title {
  color: #e4eaf0;
}
.pub-teaser__tagline {
  font-size: 0.875rem;
  color: var(--tg-icon-color, #6b788a);
  line-height: 1.55;
  margin-bottom: 1rem;
}
.pub-teaser__price {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  margin-bottom: 1.125rem;
}
.pub-teaser__amount {
  font-size: 1.5rem;
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--tg-heading-font-color, #0d1b2a);
}
[data-bs-theme="dark"] .pub-teaser__amount {
  color: #e4eaf0;
}
.pub-teaser__vat {
  font-size: 0.75rem;
  color: var(--tg-icon-color, #6b788a);
}
.pub-teaser__includes {
  list-style: none;
  padding: 0;
  margin: 0 0 1.5rem;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
  flex-grow: 1;
}
.pub-teaser__includes li {
  display: flex;
  gap: 0.5rem;
  font-size: 0.8125rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.5;
}
.pub-teaser__includes li::before {
  content: "✓";
  color: var(--tg-primary-color, #c09a52);
  font-weight: 700;
  flex-shrink: 0;
}
[data-bs-theme="dark"] .pub-teaser__includes li {
  color: #c8d0da;
}
.pub-teaser__actions {
  display: flex;
  align-items: center;
  gap: 1rem;
  margin-top: auto;
}
.pub-teaser__cta-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  font-size: 0.875rem;
  font-weight: 700;
  padding: 0.625rem 1.25rem;
  border-radius: 6px;
  text-decoration: none;
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease;
}
.pub-teaser__cta-btn:hover {
  background: color-mix(
    in srgb,
    var(--tg-primary-color, #c09a52) 80%,
    #000 20%
  );
  box-shadow: 0 3px 12px rgba(192, 154, 82, 0.35);
  color: #fff;
}
.pub-teaser__cta-btn .material-symbols-sharp {
  font-size: 16px;
}
.pub-teaser__details-link {
  font-size: 0.8125rem;
  color: var(--tg-icon-color, #6b788a);
  text-decoration: none;
}
.pub-teaser__details-link:hover {
  color: var(--tg-primary-color, #c09a52);
  text-decoration: underline;
}

/* Landing page grid override for the publish_shop view block.
 *
 * Views' grid style floats columns and stamps an inline width on each.
 * Convert the row to flex so we get a proper gap, and neutralise the
 * inline width so flex: 1 can take over.
 */
.lp-publish-shop .views-row {
  display: flex;
  gap: 1.5rem;
  align-items: stretch; /* equal-height cards */
  flex-wrap: wrap;
}
.lp-publish-shop .views-col {
  width: auto !important; /* override inline style="width:33.333%" */
  flex: 1 1 0; /* equal-width columns */
  min-width: 0; /* allow flex shrink below content size */
}
@media (max-width: 700px) {
  .lp-publish-shop .views-row {
    flex-direction: column;
  }
  .lp-publish-shop .views-col {
    flex: none;
    width: 100% !important;
  }
}

/*=============================
    /topics — Category topic cards
===============================*/

/* ── Design tokens ──────────────────────────────────────────────────────── */
.topics-hero,
.topics-main,
.topics-stats {
  --tp-navy: var(--tg-secondary-color, #0d1b2a);
  --tp-gold: var(--tg-primary-color, #c09a52);
  --tp-text: var(--tg-body-font-color, #3d4a56);
  --tp-head: var(--tg-heading-font-color, #0d1b2a);
  --tp-muted: var(--tg-icon-color, #6b788a);
  --tp-border: var(--tg-border-color, #e2ddd7);
  --tp-white: var(--tg-white, #fff);
  --tp-radius: 14px;
  --tp-ease: cubic-bezier(0.16, 1, 0.3, 1);
}
[data-bs-theme="dark"] .topics-hero,
[data-bs-theme="dark"] .topics-main,
[data-bs-theme="dark"] .topics-stats {
  --tp-head: #e4eaf0;
  --tp-text: #c8d0da;
  --tp-muted: #6b7a8a;
  --tp-border: rgba(255, 255, 255, 0.1);
  --tp-white: #111e2d;
}

/* ── Shared container ───────────────────────────────────────────────────── */
.topics-container {
  max-width: 1280px;
  margin-inline: auto;
  padding-inline: clamp(1.25rem, 4vw, 2.5rem);
}

/* ── Hero — two-column editorial layout ─────────────────────────────────── */
.topics-hero {
  background: var(--tp-navy);
  padding-block: clamp(4rem, 10vw, 7.5rem);
  position: relative;
  overflow: hidden;
}
/* Subtle radial glow behind the "7" */
.topics-hero::before {
  content: "";
  position: absolute;
  top: -60px;
  left: -40px;
  width: 600px;
  height: 600px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(192, 154, 82, 0.07) 0%,
    transparent 65%
  );
  pointer-events: none;
}
/* Decorative large "7" ghost in the background */
.topics-hero::after {
  content: "7";
  position: absolute;
  top: -0.15em;
  left: -0.06em;
  font-size: clamp(18rem, 35vw, 32rem);
  font-weight: 900;
  letter-spacing: -0.08em;
  line-height: 1;
  color: rgba(192, 154, 82, 0.04);
  pointer-events: none;
  user-select: none;
  z-index: 0;
}

/* Two-column grid */
.topics-hero__grid {
  display: grid;
  grid-template-columns: 1fr 1fr;
  gap: clamp(3rem, 7vw, 6rem);
  align-items: center;
  position: relative;
  z-index: 1;
}

/* ── Left: display typography ───────────────────────────────────────────── */
.topics-hero__content {
  /* left column */
}

.topics-eyebrow {
  display: inline-flex;
  align-items: center;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.12em;
  text-transform: uppercase;
  color: var(--tp-gold);
  padding: 0.35rem 0.875rem;
  border-radius: 999px;
  background: rgba(192, 154, 82, 0.12);
  border: 1px solid rgba(192, 154, 82, 0.25);
  margin-bottom: 1.75rem;
}

/* H1 with layered typographic treatment */
.topics-hero__title {
  margin-bottom: 1.5rem;
  line-height: 1;
  display: flex;
  align-items: flex-end;
  gap: 0.5rem;
  flex-wrap: wrap;
}

/* Giant gold "7" */
.topics-hero__num {
  display: block;
  font-family: var(--tg-heading-font-family, "Inter", sans-serif);
  font-size: clamp(6rem, 14vw, 11rem);
  font-weight: 900;
  letter-spacing: -0.06em;
  line-height: 0.88;
  color: var(--tp-gold);
  flex-shrink: 0;
}

/* "strategic / domains." stacked beside the "7" */
.topics-hero__words {
  display: flex;
  flex-direction: column;
  padding-bottom: 0.4em; /* align baseline with bottom of "7" */
}
.topics-hero__word-1 {
  display: block;
  font-family: var(--tg-heading-font-family, "Inter", sans-serif);
  font-size: clamp(1.5rem, 3.5vw, 3.25rem);
  font-style: italic;
  font-weight: 300;
  letter-spacing: -0.01em;
  line-height: 1.15;
  color: rgba(255, 255, 255, 0.72);
}
.topics-hero__word-2 {
  display: block;
  font-family: var(--tg-heading-font-family, "Inter", sans-serif);
  font-size: clamp(1.5rem, 3.5vw, 3.25rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  line-height: 1.1;
  color: #ffffff;
}

.topics-hero__lead {
  font-size: clamp(0.9375rem, 0.85rem + 0.4vw, 1.125rem);
  color: rgba(255, 255, 255, 0.62);
  line-height: 1.7;
  max-width: 46ch;
  margin-bottom: 1.5rem;
}

.topics-hero__meta {
  display: flex;
  align-items: center;
  gap: 0.625rem;
  font-size: 0.75rem;
  font-weight: 500;
  letter-spacing: 0.03em;
  color: rgba(255, 255, 255, 0.35);
  flex-wrap: wrap;
}
.topics-hero__meta-sep {
  color: rgba(255, 255, 255, 0.18);
}

/* ── Right: numbered topic index ────────────────────────────────────────── */
.topics-hero__index {
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}

.topics-hero__index-item {
  display: grid;
  grid-template-columns: 2.25rem 1fr auto;
  align-items: center;
  gap: 0.875rem;
  padding: 0.75rem 1rem;
  border-radius: 10px;
  background: rgba(255, 255, 255, 0.04);
  border: 1px solid rgba(255, 255, 255, 0.07);
  text-decoration: none;
  transition:
    background 0.2s ease,
    border-color 0.2s ease,
    transform 0.2s ease;
}
.topics-hero__index-item:hover {
  background: rgba(192, 154, 82, 0.1);
  border-color: rgba(192, 154, 82, 0.28);
  transform: translateX(4px);
}

.topics-hero__index-num {
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.06em;
  color: var(--tp-gold);
  font-variant-numeric: tabular-nums;
}
.topics-hero__index-name {
  font-size: 0.9375rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.85);
  line-height: 1.2;
  transition: color 0.2s ease;
}
.topics-hero__index-item:hover .topics-hero__index-name {
  color: #ffffff;
}

.topics-hero__index-count {
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(255, 255, 255, 0.3);
  font-variant-numeric: tabular-nums;
  text-align: right;
}

/* ── Stats strip ────────────────────────────────────────────────────────── */
.topics-stats {
  background: rgba(13, 27, 42, 0.96);
  padding-block: 1.25rem;
  border-bottom: 1px solid rgba(255, 255, 255, 0.06);
}
.topics-stats__grid {
  display: flex;
  align-items: center;
  justify-content: center;
  gap: clamp(2rem, 5vw, 5rem);
  flex-wrap: wrap;
}
.topics-stat {
  display: flex;
  align-items: baseline;
  gap: 0.625rem;
}
.topics-stat__num {
  font-size: clamp(1.25rem, 2vw, 1.75rem);
  font-weight: 700;
  letter-spacing: -0.03em;
  color: var(--tp-gold);
  line-height: 1;
}
.topics-stat__label {
  font-size: 0.8125rem;
  color: rgba(255, 255, 255, 0.55);
  font-weight: 500;
}

/* ── Main content area ──────────────────────────────────────────────────── */
.topics-main {
  background: #f8f7f4;
  padding-block: clamp(3rem, 7vw, 6rem);
}
[data-bs-theme="dark"] .topics-main {
  background: #0d1a2a;
}

/* ── Card grid ──────────────────────────────────────────────────────────── */
.topics-grid {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  gap: 1.5rem;
}

/* ── Individual topic card ──────────────────────────────────────────────── */
.topic-card {
  position: relative;
  display: flex;
  flex-direction: column;
  border-radius: 14px;
  background: linear-gradient(130deg, #0d1b2a 0%, #162843 55%, #1e3659 100%);
  border: 1px solid rgba(192, 154, 82, 0.22);
  box-shadow:
    0 4px 24px rgba(13, 27, 42, 0.18),
    inset 0 0 0 1px rgba(192, 154, 82, 0.08);
  padding: 2rem;
  overflow: hidden;
  transition:
    box-shadow 0.22s var(--tp-ease),
    border-color 0.22s var(--tp-ease),
    transform 0.22s var(--tp-ease);
  margin-bottom: 40px;
}

/* Radial gold glow — top-right decorative blob */
.topic-card::before {
  content: "";
  position: absolute;
  top: -50px;
  right: -50px;
  width: 200px;
  height: 200px;
  border-radius: 50%;
  background: radial-gradient(
    circle,
    rgba(192, 154, 82, 0.18) 0%,
    transparent 70%
  );
  pointer-events: none;
  opacity: 1;
}
.topic-card:hover {
  box-shadow:
    0 12px 48px rgba(13, 27, 42, 0.4),
    inset 0 0 0 1px rgba(192, 154, 82, 0.18);
  border-color: rgba(192, 154, 82, 0.5);
}
.topic-card:hover::before {
  opacity: 1;
}
[data-bs-theme="dark"] .topic-card {
  background: linear-gradient(130deg, #080f1a 0%, #0f1e35 55%, #162843 100%);
  border-color: rgba(192, 154, 82, 0.25);
}

/* "Focus Area" eyebrow badge — top-right corner */
.topic-card__badge {
  position: absolute;
  top: 0;
  right: 0;
  padding: 4px 12px;
  font-size: 10px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: rgba(192, 154, 82, 0.8);
  background: rgba(192, 154, 82, 0.1);
  border-radius: 0 14px 0 8px;
  border-left: 1px solid rgba(192, 154, 82, 0.2);
  border-bottom: 1px solid rgba(192, 154, 82, 0.2);
  z-index: 1;
}

/* Full-card click target (invisible overlay) */
.topic-card__link {
  position: absolute;
  inset: 0;
  z-index: 0;
  border-radius: inherit;
}

.topic-card__icon-wrap {
  width: 52px;
  height: 52px;
  border-radius: 14px;
  background: rgba(192, 154, 82, 0.12);
  border: 1px solid rgba(192, 154, 82, 0.28);
  display: flex;
  align-items: center;
  justify-content: center;
  margin-bottom: 1.25rem;
  flex-shrink: 0;
  transition:
    background 0.22s var(--tp-ease),
    transform 0.22s var(--tp-ease);
}
.topic-card:hover .topic-card__icon-wrap {
  background: rgba(192, 154, 82, 0.22);
  transform: scale(1.06);
}
.topic-card__icon {
  font-size: 26px;
  color: #c09a52;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
  transition: font-variation-settings 0.18s ease;
}
.topic-card:hover .topic-card__icon {
  font-variation-settings:
    "wght" 400,
    "FILL" 1,
    "GRAD" 0,
    "opsz" 24;
}

.topic-card__body {
  flex-grow: 1;
}
.topic-card__name {
  font-size: clamp(1.1rem, 1.4vw + 0.2rem, 1.375rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: #ffffff;
  margin-bottom: 0.625rem;
  line-height: 1.25;
}
.topic-card__name a {
  color: inherit;
  text-decoration: none;
  position: relative;
  z-index: 1;
  transition: color 0.18s ease;
}
.topic-card:hover .topic-card__name a {
  color: #c09a52;
}
.topic-card__lead {
  font-size: 0.9rem;
  color: rgba(228, 234, 240, 0.65);
  line-height: 1.65;
  margin-bottom: 0;
}

/* Footer row */
.topic-card__footer {
  display: flex;
  align-items: center;
  justify-content: space-between;
  margin-top: 1.5rem;
  padding-top: 1.25rem;
  border-top: 1px solid rgba(192, 154, 82, 0.18);
}
[data-bs-theme="dark"] .topic-card__footer {
  border-color: rgba(192, 154, 82, 0.12);
}

.topic-card__count {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.8125rem;
  font-weight: 500;
  color: rgba(228, 234, 240, 0.5);
}
.topic-card__count .material-symbols-sharp {
  font-size: 16px;
  font-variation-settings:
    "wght" 300,
    "FILL" 0,
    "GRAD" 0,
    "opsz" 24;
}

/* CTA — solid gold button matching sponsor-house__btn */
.topic-card__cta {
  display: inline-flex;
  align-items: center;
  gap: 0.375rem;
  padding: 6px 16px;
  border-radius: 8px;
  background: #c09a52;
  color: #0d1b2a;
  font-size: 0.8125rem;
  font-weight: 700;
  text-decoration: none;
  white-space: nowrap;
  position: relative;
  z-index: 1;
  box-shadow: 0 2px 10px rgba(192, 154, 82, 0.3);
  transition:
    background 0.18s ease,
    gap 0.18s var(--tp-ease),
    box-shadow 0.18s ease,
    transform 0.18s ease;
}
.topic-card__cta .material-symbols-sharp {
  font-size: 16px;
}
.topic-card:hover .topic-card__cta {
  gap: 0.5rem;
  background: color-mix(in srgb, #c09a52 88%, #fff 12%);
  box-shadow: 0 4px 16px rgba(192, 154, 82, 0.45);
}

/* ── Responsive ─────────────────────────────────────────────────────────── */
@media (max-width: 1024px) {
  .topics-hero__grid {
    grid-template-columns: 1fr;
    gap: 3rem;
  }
  .topics-hero__index {
    /* show index below text on tablet/mobile */
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 0.5rem;
  }
  .topics-hero__word-1,
  .topics-hero__word-2 {
    font-size: clamp(1.25rem, 3vw, 2.25rem);
  }
}
@media (max-width: 900px) {
  .topics-grid {
    grid-template-columns: 1fr 1fr;
  }
  .topics-stats__grid {
    gap: 1.5rem 3rem;
  }
}
@media (max-width: 600px) {
  .topics-grid {
    grid-template-columns: 1fr;
  }
  .topics-stats__grid {
    gap: 1rem 2rem;
  }
  .topics-hero__index {
    grid-template-columns: 1fr;
  }
  .topics-hero::after {
    display: none;
  } /* hide ghost "7" on very small screens */
}

/*=============================
    Event — Paid ticket purchase section
===============================*/

/* Inline price display in the event info panel */
.event-ticket-price-display {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  font-size: 1.25rem;
  font-weight: 700;
  color: var(--tg-heading-font-color, #0d1b2a);
  margin-top: 0.25rem;
}
[data-bs-theme="dark"] .event-ticket-price-display {
  color: #e4eaf0;
}
.event-ticket-vat {
  font-size: 0.75rem;
  font-weight: 400;
  color: var(--tg-icon-color, #6b788a);
}

/* ── Ticket purchase card ─────────────────────────────────────────────── */
.event-ticket-section {
  margin-block: 2.5rem;
  border: 2px solid var(--tg-primary-color, #c09a52);
  border-radius: 14px;
  overflow: hidden;
  box-shadow: 0 4px 24px rgba(192, 154, 82, 0.12);
}
.event-ticket-section__inner {
  display: grid;
  grid-template-columns: 1fr 1fr;
  align-items: stretch;
}

/* Left: information */
.event-ticket-section__info {
  padding: 2rem;
  background: linear-gradient(
    135deg,
    var(--tg-secondary-color, #0d1b2a) 0%,
    #162843 100%
  );
}
.event-ticket-section__eyebrow {
  display: flex;
  align-items: center;
  gap: 0.375rem;
  font-size: 0.7rem;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
  color: var(--tg-primary-color, #c09a52);
  margin-bottom: 0.875rem;
}
.event-ticket-section__eyebrow .material-symbols-sharp {
  font-size: 16px;
}
.event-ticket-section__title {
  font-size: 1.25rem;
  font-weight: 700;
  color: #fff;
  margin-bottom: 0.875rem;
  line-height: 1.25;
}
.event-ticket-section__price {
  display: flex;
  align-items: baseline;
  gap: 0.375rem;
  margin-bottom: 1.5rem;
}
.event-ticket-section__currency {
  font-size: 0.9375rem;
  font-weight: 600;
  color: rgba(255, 255, 255, 0.75);
}
.event-ticket-section__amount {
  font-size: 2.25rem;
  font-weight: 800;
  letter-spacing: -0.04em;
  color: var(--tg-primary-color, #c09a52);
  line-height: 1;
}
.event-ticket-section__vat {
  font-size: 0.75rem;
  color: rgba(255, 255, 255, 0.4);
}

/* Includes checklist */
.event-ticket-section__includes {
  list-style: none;
  padding: 0;
  margin: 0;
  display: flex;
  flex-direction: column;
  gap: 0.625rem;
}
.event-ticket-section__includes li {
  display: flex;
  align-items: center;
  gap: 0.5rem;
  font-size: 0.875rem;
  color: rgba(255, 255, 255, 0.72);
  line-height: 1.4;
}
.event-ticket-section__includes .material-symbols-sharp {
  font-size: 16px;
  flex-shrink: 0;
  color: var(--tg-primary-color, #c09a52);
  font-variation-settings: "FILL" 1;
}
.event-ticket-section__includes li:last-child .material-symbols-sharp {
  color: rgba(255, 255, 255, 0.45);
}

/* Right: Commerce add-to-cart form */
.event-ticket-section__cart {
  padding: 2rem;
  background: var(--tg-white, #fff);
  display: flex;
  flex-direction: column;
  justify-content: center;
}
[data-bs-theme="dark"] .event-ticket-section__cart {
  background: rgba(255, 255, 255, 0.04);
}
/* Style the Commerce add-to-cart button */
.event-ticket-section__cart .btn-primary,
.event-ticket-section__cart input[type="submit"],
.event-ticket-section__cart button[type="submit"] {
  background: var(--tg-primary-color, #c09a52) !important;
  border-color: var(--tg-primary-color, #c09a52) !important;
  font-size: 1rem !important;
  font-weight: 700 !important;
  padding: 0.875rem 1.75rem !important;
  border-radius: 8px !important;
  width: 100% !important;
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease !important;
}
.event-ticket-section__cart .btn-primary:hover,
.event-ticket-section__cart button[type="submit"]:hover {
  background: color-mix(
    in srgb,
    var(--tg-primary-color, #c09a52) 80%,
    #000 20%
  ) !important;
  box-shadow: 0 4px 16px rgba(192, 154, 82, 0.35) !important;
}
/* Product title — hide (already in the event title) */
.event-ticket-section__cart .field--name-title {
  display: none;
}

/* ── Responsive ── */
@media (max-width: 700px) {
  .event-ticket-section__inner {
    grid-template-columns: 1fr;
  }
}

/*=============================
    Product page — variation "Features" checklist
    (brand-kit styled list of what's included in the selected package,
    replacing the raw/unstyled field_features dump)
===============================*/
.product-features {
  padding: 1rem 1.125rem;
  background: rgba(13, 27, 42, 0.03);
  border: 1px solid rgba(13, 27, 42, 0.08);
  border-radius: 10px;
}
[data-bs-theme="dark"] .product-features {
  background: rgba(255, 255, 255, 0.04);
  border-color: rgba(255, 255, 255, 0.08);
}
.product-features__heading {
  margin: 0 0 0.625rem;
  font-size: 0.8125rem;
  font-weight: 700;
  letter-spacing: 0.04em;
  text-transform: uppercase;
  color: var(--tg-secondary-color, #0d1b2a);
}
[data-bs-theme="dark"] .product-features__heading {
  color: #e4eaf0;
}
.product-features__list {
  list-style: none;
  margin: 0;
  padding: 0;
  display: flex;
  flex-direction: column;
  gap: 0.5rem;
}
.product-features__list li {
  display: flex;
  align-items: flex-start;
  gap: 0.5rem;
  font-size: 0.9375rem;
  line-height: 1.5;
  color: var(--tg-secondary-color, #0d1b2a);
}
[data-bs-theme="dark"] .product-features__list li {
  color: #cbd5e1;
}
.product-features__list li .material-symbols-sharp {
  font-size: 1.15rem;
  color: var(--tg-primary-color, #c09a52);
  font-variation-settings: "FILL" 1;
  flex-shrink: 0;
  margin-top: 0.0625rem;
}

/*=============================
    Add-to-cart — locked choice confirmation
    (shown instead of the "Select Package" dropdown when the customer
    arrived via a pricing-card link that already named the variation)
===============================*/
.zaira-locked-choice {
  margin-bottom: 1rem;
  padding: 0.875rem 1rem;
  background: rgba(192, 154, 82, 0.08);
  border: 1px solid rgba(192, 154, 82, 0.25);
  border-radius: 8px;
}
.zaira-locked-choice__row {
  display: flex;
  align-items: center;
  gap: 0.4rem;
  font-size: 1rem;
  font-weight: 700;
  color: var(--tg-secondary-color, #0d1b2a);
}
.zaira-locked-choice__icon {
  font-size: 18px;
  color: var(--tg-primary-color, #c09a52);
  font-variation-settings: "FILL" 1;
  flex-shrink: 0;
}
.zaira-locked-choice__label {
  font-weight: 500;
  color: var(--tg-icon-color, #6b788a);
}
.zaira-locked-choice__value {
  color: inherit;
}
[data-bs-theme="dark"] .zaira-locked-choice {
  background: rgba(192, 154, 82, 0.1);
  border-color: rgba(192, 154, 82, 0.3);
}
[data-bs-theme="dark"] .zaira-locked-choice__row {
  color: #e4eaf0;
}
[data-bs-theme="dark"] .zaira-locked-choice__label {
  color: #9aa7b5;
}

/*=============================
    Publisher Marketplace — checkout completion CTA
===============================*/
.checkout-complete__contribute {
  margin-top: 2rem;
  border-top: 2px solid var(--tg-primary-color, #c09a52);
  padding-top: 1.75rem;
}
.checkout-complete__contribute-inner {
  display: flex;
  gap: 1.25rem;
  align-items: flex-start;
  background: var(--tg-white, #fff);
  border: 1px solid var(--tg-border-color, #e2ddd7);
  border-radius: 10px;
  padding: 1.75rem;
  box-shadow: 0 2px 12px rgba(13, 27, 42, 0.06);
}
.checkout-complete__contribute-icon {
  flex-shrink: 0;
  width: 48px;
  height: 48px;
  background: var(--tg-primary-color, #c09a52);
  border-radius: 50%;
  display: flex;
  align-items: center;
  justify-content: center;
  color: #fff;
}
.checkout-complete__contribute-icon .material-symbols-sharp {
  font-size: 24px;
}
.checkout-complete__contribute-body h3 {
  font-size: 1.1rem;
  font-weight: 700;
  color: var(--tg-heading-font-color, #0d1b2a);
  margin-bottom: 0.5rem;
}
.checkout-complete__contribute-body p {
  font-size: 0.9375rem;
  color: var(--tg-body-font-color, #3d4a56);
  line-height: 1.65;
  margin-bottom: 1.25rem;
}
.checkout-complete__contribute-btn {
  display: inline-flex;
  align-items: center;
  gap: 0.5rem;
  background: var(--tg-primary-color, #c09a52);
  color: #fff;
  font-size: 0.9rem;
  font-weight: 600;
  padding: 0.75rem 1.5rem;
  border-radius: 6px;
  text-decoration: none;
  transition:
    background 0.2s ease,
    box-shadow 0.2s ease;
}
.checkout-complete__contribute-btn:hover {
  background: color-mix(
    in srgb,
    var(--tg-primary-color, #c09a52) 82%,
    #000 18%
  );
  box-shadow: 0 4px 14px rgba(192, 154, 82, 0.35);
  color: #fff;
}
[data-bs-theme="dark"] .checkout-complete__contribute-inner {
  background: var(--tg-secondary-color, #0d1b2a);
  border-color: rgba(255, 255, 255, 0.1);
}
[data-bs-theme="dark"] .checkout-complete__contribute-body h3 {
  color: #e4eaf0;
}
[data-bs-theme="dark"] .checkout-complete__contribute-body p {
  color: rgba(255, 255, 255, 0.65);
}

/*=============================
    58. Page loader
===============================*/
body.is-loading {
  overflow: hidden;
}
#page-loader {
  position: fixed;
  inset: 0;
  z-index: 998;
  display: flex;
  align-items: center;
  justify-content: center;
  background: var(--background-color);
  opacity: 1;
  transition:
    opacity 0.3s ease,
    visibility 0s linear 0.3s;
}
[data-bs-theme="dark"] #page-loader {
  background: var(--tg-black);
}
body:not(.is-loading) #page-loader {
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
}
.page-loader__ring {
  position: relative;
  width: clamp(120px, 28vw, 180px);
  height: clamp(120px, 28vw, 180px);
  display: flex;
  align-items: center;
  justify-content: center;
}
.page-loader__svg {
  width: 100%;
  height: 100%;
  transform: rotate(-90deg);
  filter: drop-shadow(0 0 12px color-mix(in srgb, var(--thin-progress-color, #C09A52) 45%, transparent));
}
.page-loader__track {
  fill: none;
  stroke: rgba(13, 27, 42, 0.08);
  stroke-width: 6;
}
[data-bs-theme="dark"] .page-loader__track {
  stroke: rgba(255, 255, 255, 0.08);
}
.page-loader__bar {
  fill: none;
  stroke: var(--thin-progress-color, #C09A52);
  stroke-width: 6;
  stroke-linecap: round;
  stroke-dasharray: 339.292;
  stroke-dashoffset: 339.292;
  transition: stroke-dashoffset 0.2s ease;
}
.page-loader__percent {
  position: absolute;
  font-size: clamp(1.5rem, 5vw, 2.25rem);
  font-weight: 700;
  letter-spacing: -0.02em;
  color: var(--thin-progress-color, #C09A52);
}
@media (prefers-reduced-motion: reduce) {
  .page-loader__svg {
    filter: none;
  }
  .page-loader__bar {
    transition: none;
  }
}

/*=============================
    59. Utility classes (margin, padding, color)
===============================*/
/*-- Margin Top --*/
.mt-5 { margin-top: 5px; }
.mt-10 { margin-top: 10px; }
.mt-15 { margin-top: 15px; }
.mt-20 { margin-top: 20px; }
.mt-25 { margin-top: 25px; }
.mt-30 { margin-top: 30px; }
.mt-35 { margin-top: 35px; }
.mt-40 { margin-top: 40px; }
.mt-45 { margin-top: 45px; }
.mt-50 { margin-top: 50px; }
.mt-55 { margin-top: 55px; }
.mt-60 { margin-top: 60px; }
.mt-65 { margin-top: 65px; }
.mt-70 { margin-top: 70px; }
.mt-75 { margin-top: 75px; }
.mt-80 { margin-top: 80px; }
.mt-85 { margin-top: 85px; }
.mt-90 { margin-top: 90px; }
.mt-95 { margin-top: 95px; }
.mt-100 { margin-top: 100px; }
.mt-105 { margin-top: 105px; }
.mt-110 { margin-top: 110px; }
.mt-115 { margin-top: 115px; }
.mt-120 { margin-top: 120px; }
.mt-125 { margin-top: 125px; }
.mt-130 { margin-top: 130px; }
.mt-135 { margin-top: 135px; }
.mt-140 { margin-top: 140px; }
.mt-145 { margin-top: 145px; }
.mt-150 { margin-top: 150px; }
.mt-155 { margin-top: 155px; }
.mt-160 { margin-top: 160px; }
.mt-165 { margin-top: 165px; }
.mt-170 { margin-top: 170px; }
.mt-175 { margin-top: 175px; }
.mt-180 { margin-top: 180px; }
.mt-185 { margin-top: 185px; }
.mt-190 { margin-top: 190px; }
.mt-195 { margin-top: 195px; }
.mt-200 { margin-top: 200px; }

/*-- Margin Bottom --*/
.mb-5 { margin-bottom: 5px; }
.mb-10 { margin-bottom: 10px; }
.mb-15 { margin-bottom: 15px; }
.mb-20 { margin-bottom: 20px; }
.mb-25 { margin-bottom: 25px; }
.mb-30 { margin-bottom: 30px; }
.mb-35 { margin-bottom: 35px; }
.mb-40 { margin-bottom: 40px; }
.mb-45 { margin-bottom: 45px; }
.mb-50 { margin-bottom: 50px; }
.mb-55 { margin-bottom: 55px; }
.mb-60 { margin-bottom: 60px; }
.mb-65 { margin-bottom: 65px; }
.mb-70 { margin-bottom: 70px; }
.mb-75 { margin-bottom: 75px; }
.mb-80 { margin-bottom: 80px; }
.mb-85 { margin-bottom: 85px; }
.mb-90 { margin-bottom: 90px; }
.mb-95 { margin-bottom: 95px; }
.mb-100 { margin-bottom: 100px; }
.mb-105 { margin-bottom: 105px; }
.mb-110 { margin-bottom: 110px; }
.mb-115 { margin-bottom: 115px; }
.mb-120 { margin-bottom: 120px; }
.mb-125 { margin-bottom: 125px; }
.mb-130 { margin-bottom: 130px; }
.mb-135 { margin-bottom: 135px; }
.mb-140 { margin-bottom: 140px; }
.mb-145 { margin-bottom: 145px; }
.mb-150 { margin-bottom: 150px; }
.mb-155 { margin-bottom: 155px; }
.mb-160 { margin-bottom: 160px; }
.mb-165 { margin-bottom: 165px; }
.mb-170 { margin-bottom: 170px; }
.mb-175 { margin-bottom: 175px; }
.mb-180 { margin-bottom: 180px; }
.mb-185 { margin-bottom: 185px; }
.mb-190 { margin-bottom: 190px; }
.mb-195 { margin-bottom: 195px; }
.mb-200 { margin-bottom: 200px; }

/*-- Padding Top --*/
.pt-5 { padding-top: 5px; }
.pt-10 { padding-top: 10px; }
.pt-15 { padding-top: 15px; }
.pt-20 { padding-top: 20px; }
.pt-25 { padding-top: 25px; }
.pt-30 { padding-top: 30px; }
.pt-35 { padding-top: 35px; }
.pt-40 { padding-top: 40px; }
.pt-45 { padding-top: 45px; }
.pt-50 { padding-top: 50px; }
.pt-55 { padding-top: 55px; }
.pt-60 { padding-top: 60px; }
.pt-65 { padding-top: 65px; }
.pt-70 { padding-top: 70px; }
.pt-75 { padding-top: 75px; }
.pt-80 { padding-top: 80px; }
.pt-85 { padding-top: 85px; }
.pt-90 { padding-top: 90px; }
.pt-95 { padding-top: 95px; }
.pt-100 { padding-top: 100px; }
.pt-105 { padding-top: 105px; }
.pt-110 { padding-top: 110px; }
.pt-115 { padding-top: 115px; }
.pt-120 { padding-top: 120px; }
.pt-125 { padding-top: 125px; }
.pt-130 { padding-top: 130px; }
.pt-135 { padding-top: 135px; }
.pt-140 { padding-top: 140px; }
.pt-145 { padding-top: 145px; }
.pt-150 { padding-top: 150px; }
.pt-155 { padding-top: 155px; }
.pt-160 { padding-top: 160px; }
.pt-165 { padding-top: 165px; }
.pt-170 { padding-top: 170px; }
.pt-175 { padding-top: 175px; }
.pt-180 { padding-top: 180px; }
.pt-185 { padding-top: 185px; }
.pt-190 { padding-top: 190px; }
.pt-195 { padding-top: 195px; }
.pt-200 { padding-top: 200px; }

/*-- Padding Bottom --*/
.pb-5 { padding-bottom: 5px; }
.pb-10 { padding-bottom: 10px; }
.pb-15 { padding-bottom: 15px; }
.pb-20 { padding-bottom: 20px; }
.pb-25 { padding-bottom: 25px; }
.pb-30 { padding-bottom: 30px; }
.pb-35 { padding-bottom: 35px; }
.pb-40 { padding-bottom: 40px; }
.pb-45 { padding-bottom: 45px; }
.pb-50 { padding-bottom: 50px; }
.pb-55 { padding-bottom: 55px; }
.pb-60 { padding-bottom: 60px; }
.pb-65 { padding-bottom: 65px; }
.pb-70 { padding-bottom: 70px; }
.pb-75 { padding-bottom: 75px; }
.pb-80 { padding-bottom: 80px; }
.pb-85 { padding-bottom: 85px; }
.pb-90 { padding-bottom: 90px; }
.pb-95 { padding-bottom: 95px; }
.pb-100 { padding-bottom: 100px; }
.pb-105 { padding-bottom: 105px; }
.pb-110 { padding-bottom: 110px; }
.pb-115 { padding-bottom: 115px; }
.pb-120 { padding-bottom: 120px; }
.pb-125 { padding-bottom: 125px; }
.pb-130 { padding-bottom: 130px; }
.pb-135 { padding-bottom: 135px; }
.pb-140 { padding-bottom: 140px; }
.pb-145 { padding-bottom: 145px; }
.pb-150 { padding-bottom: 150px; }
.pb-155 { padding-bottom: 155px; }
.pb-160 { padding-bottom: 160px; }
.pb-165 { padding-bottom: 165px; }
.pb-170 { padding-bottom: 170px; }
.pb-175 { padding-bottom: 175px; }
.pb-180 { padding-bottom: 180px; }
.pb-185 { padding-bottom: 185px; }
.pb-190 { padding-bottom: 190px; }
.pb-195 { padding-bottom: 195px; }
.pb-200 { padding-bottom: 200px; }

/*-- Padding Left --*/
.pl-0 { padding-left: 0px; }
.pl-5 { padding-left: 5px; }
.pl-10 { padding-left: 10px; }
.pl-15 { padding-left: 15px; }
.pl-20 { padding-left: 20px; }
.pl-25 { padding-left: 35px; }
.pl-30 { padding-left: 30px; }
.pl-35 { padding-left: 35px; }
.pl-40 { padding-left: 40px; }
.pl-45 { padding-left: 45px; }
.pl-50 { padding-left: 50px; }
.pl-55 { padding-left: 55px; }
.pl-60 { padding-left: 60px; }
.pl-65 { padding-left: 65px; }
.pl-70 { padding-left: 70px; }
.pl-75 { padding-left: 75px; }
.pl-80 { padding-left: 80px; }
.pl-85 { padding-left: 80px; }
.pl-90 { padding-left: 90px; }
.pl-95 { padding-left: 95px; }
.pl-100 { padding-left: 100px; }

/*-- Padding Right --*/
.pr-0 { padding-right: 0px; }
.pr-5 { padding-right: 5px; }
.pr-10 { padding-right: 10px; }
.pr-15 { padding-right: 15px; }
.pr-20 { padding-right: 20px; }
.pr-25 { padding-right: 35px; }
.pr-30 { padding-right: 30px; }
.pr-35 { padding-right: 35px; }
.pr-40 { padding-right: 40px; }
.pr-45 { padding-right: 45px; }
.pr-50 { padding-right: 50px; }
.pr-55 { padding-right: 55px; }
.pr-60 { padding-right: 60px; }
.pr-65 { padding-right: 65px; }
.pr-70 { padding-right: 70px; }
.pr-75 { padding-right: 75px; }
.pr-80 { padding-right: 80px; }
.pr-85 { padding-right: 80px; }
.pr-90 { padding-right: 90px; }
.pr-95 { padding-right: 95px; }
.pr-100 { padding-right: 100px; }

/* font weight */
.f-700 { font-weight: 700; }
.f-600 { font-weight: 600; }
.f-500 { font-weight: 500; }
.f-400 { font-weight: 400; }
.f-300 { font-weight: 300; }

/* Background Color */
.gray-bg { background: #f7f7fd; }
.white-bg { background: #fff; }
.black-bg { background: #222; }
.theme-bg { background: #222; }
.primary-bg { background: #222; }

/* Color */
.white-color { color: #fff; }
.black-color { color: #222; }
.theme-color { color: #222; }
.primary-color { color: #222; }

/* black overlay */
[data-overlay] { position: relative; }
[data-overlay]::before { background: #000 none repeat scroll 0 0; content: ""; height: 100%; left: 0; position: absolute; top: 0; width: 100%; z-index: 1; }
[data-overlay="3"]::before { opacity: 0.3; }
[data-overlay="4"]::before { opacity: 0.4; }
[data-overlay="5"]::before { opacity: 0.5; }
[data-overlay="6"]::before { opacity: 0.6; }
[data-overlay="7"]::before { opacity: 0.7; }
[data-overlay="8"]::before { opacity: 0.8; }
[data-overlay="9"]::before { opacity: 0.9; }
