/*!
Theme Name: Laura Worley
Theme URI: http://underscores.me/
Author: Laura Worley
Author URI: https://laurajworley.com/
Description: A custom WordPress theme using Bootstrap
Version: 1.0.0
Tested up to: 5.4
Requires PHP: 5.6
License: GNU General Public License v2 or later
License URI: LICENSE
Text Domain: laurajworley
Tags: custom-background, custom-logo, custom-menu, featured-images, threaded-comments, translation-ready

This theme, like WordPress, is licensed under the GPL.
Use it to make something cool, have fun, and share what you've learned.

Laura Worley is based on Underscores https://underscores.me/, (C) 2012-2020 Automattic, Inc.
Underscores is distributed under the terms of the GNU GPL v2 or later.

Normalizing styles have been helped along thanks to the fine work of
Nicolas Gallagher and Jonathan Neal https://necolas.github.io/normalize.css/
*/
/* Captions
--------------------------------------------- */
.wp-caption {
  margin-bottom: 1.5em;
  max-width: 100%;
}
.wp-caption img[class*="wp-image-"] {
  display: block;
  margin-left: auto;
  margin-right: auto;
}
.wp-caption .wp-caption-text {
  margin: 0.8075em 0;
}
.wp-caption-text {
  text-align: center;
}
/* Galleries
--------------------------------------------- */
.gallery {
  margin-bottom: 1.5em;
  display: grid;
  grid-gap: 1.5em;
}
.gallery-item {
  display: inline-block;
  text-align: center;
  width: 100%;
}
.gallery-columns-2 {
  grid-template-columns: repeat(2, 1fr);
}
.gallery-columns-3 {
  grid-template-columns: repeat(3, 1fr);
}
.gallery-columns-4 {
  grid-template-columns: repeat(4, 1fr);
}
.gallery-columns-5 {
  grid-template-columns: repeat(5, 1fr);
}
.gallery-columns-6 {
  grid-template-columns: repeat(6, 1fr);
}
.gallery-columns-7 {
  grid-template-columns: repeat(7, 1fr);
}
.gallery-columns-8 {
  grid-template-columns: repeat(8, 1fr);
}
.gallery-columns-9 {
  grid-template-columns: repeat(9, 1fr);
}
.gallery-caption {
  display: block;
}
/*--------------------------------------------------------------
# Plugins
--------------------------------------------------------------*/
/* Jetpack infinite scroll
--------------------------------------------- */
/* Hide the Posts Navigation and the Footer when Infinite Scroll is in use. */
.infinite-scroll .posts-navigation, .infinite-scroll.neverending .site-footer {
  display: none;
}
/* Re-display the Theme Footer when Infinite Scroll has reached its end. */
.infinity-end.neverending .site-footer {
  display: block;
}
/*--------------------------------------------------------------
# Utilities
--------------------------------------------------------------*/
/* Accessibility
--------------------------------------------- */
/* Text meant only for screen readers. */
.screen-reader-text {
  border: 0;
  clip: rect(1px, 1px, 1px, 1px);
  clip-path: inset(50%);
  height: 1px;
  margin: -1px;
  overflow: hidden;
  padding: 0;
  position: absolute !important;
  width: 1px;
  word-wrap: normal !important;
}
.screen-reader-text:focus {
  background-color: #f1f1f1;
  border-radius: 3px;
  box-shadow: 0 0 2px 2px rgba(0, 0, 0, 0.6);
  clip: auto !important;
  clip-path: none;
  color: #21759b;
  display: block;
  font-size: 0.875rem;
  font-weight: 700;
  height: auto;
  left: 5px;
  line-height: normal;
  padding: 15px 23px 14px;
  text-decoration: none;
  top: 5px;
  width: auto;
  z-index: 100000;
}
/* Do not show the outline on the skip link target. */
#primary[tabindex="-1"]:focus {
  outline: 0;
}
/* Alignments
--------------------------------------------- */
.alignleft {
  /*rtl:ignore*/
  float: left;
  /*rtl:ignore*/
  margin-right: 1.5em;
  margin-bottom: 1.5em;
}
.alignright {
  /*rtl:ignore*/
  float: right;
  /*rtl:ignore*/
  margin-left: 1.5em;
  margin-bottom: 1.5em;
}
.aligncenter {
  clear: both;
  display: block;
  margin-left: auto;
  margin-right: auto;
  margin-bottom: 1.5em;
}
/* --------------------------------------

Custom styles 

--------------------------------------- */
*:root {
  --dark-blue-color: #125175;
  --blue-color: #1880c2;
  --light-blue-color: #afe5f5;
  --lightest-blue-color: #edfdff;
  --orange-color: #f3a847;
  --heading-font: "Crimson Text", serif;
  --body-font: "Open Sans", sans-serif;
}
/* crimson-text-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Crimson Text';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/crimson-text-v19-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* crimson-text-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Crimson Text';
  font-style: italic;
  font-weight: 400;
  src: url('fonts/crimson-text-v19-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* crimson-text-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Crimson Text';
  font-style: normal;
  font-weight: 700;
  src: url('fonts/crimson-text-v19-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* crimson-text-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Crimson Text';
  font-style: italic;
  font-weight: 700;
  src: url('fonts/crimson-text-v19-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* open-sans-regular - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 400;
  src: url('fonts/open-sans-v40-latin-regular.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* open-sans-italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 400;
  src: url('fonts/open-sans-v40-latin-italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* open-sans-700 - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: normal;
  font-weight: 700;
  src: url('fonts/open-sans-v40-latin-700.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* open-sans-700italic - latin */
@font-face {
  font-display: swap; /* Check https://developer.mozilla.org/en-US/docs/Web/CSS/@font-face/font-display for other options. */
  font-family: 'Open Sans';
  font-style: italic;
  font-weight: 700;
  src: url('fonts/open-sans-v40-latin-700italic.woff2') format('woff2'); /* Chrome 36+, Opera 23+, Firefox 39+, Safari 12+, iOS 10+ */
}
/* --------------------------------------

Global

--------------------------------------- */
html {
  scroll-behavior: smooth;
  scroll-padding-top: 3rem;
}
body {
  font-family: var(--body-font);
  font-size: 18px;
  line-height: 1.6;
  font-weight: 400;
  color: #333333;
}
h1, h2, h3, h4, h5, h6 {
  font-family: var(--heading-font);
  font-weight: 700;
  color: var(--dark-blue-color);
  margin-bottom: 0.5em;
  line-height: 1.2;
}
h1 {
  font-size: 3.375rem;
}
h2 {
  font-size: 2.563rem;
}
h3 {
  font-size: 2rem;
}
h4 {
  font-size: 1.25rem;
}
p, ul, ol {
  margin-bottom: 1em;
}
ul li, ol li {
  margin-bottom: 0.5em;
}
section {
  padding: 6rem 0 6rem;
}
.lightest-blue-bg-color {
  background-color: var(--lightest-blue-color);
}
/* ----- Link styling ----- */
a:link, a:visited {
  color: var(--dark-blue-color);
  text-decoration: underline;
}
a:hover, a:active, a:focus {
  color: var(--dark-blue-color);
  text-decoration: none;
  opacity: 0.9;
}
/* ----- Buttons ----- */
.large-btn {
  color: #ffffff !important;
  font-size: 1.125rem;
  border-radius: 6px;
  padding: 0.6em 1.5em 0.6em 1.5em;
  text-decoration: none !important;
  word-break: break-word;
  cursor: pointer;
  display: inline-block;
}
.small-btn {
  color: #ffffff !important;
  font-size: 1rem;
  border-radius: 6px;
  padding: 0.5em 1.1em 0.5em 1.1em;
  text-decoration: none !important;
  word-break: break-word;
  cursor: pointer;
  display: inline-block;
}
.light-blue-btn {
  color: var(--dark-blue-color) !important;
  font-size: 1rem;
  border-radius: 6px;
  padding: 0.5em 1.1em 0.5em 1.1em;
  background-color: var(--lightest-blue-color);
  border: 1px solid var(--light-blue-color);
  text-decoration: none !important;
  word-break: break-word;
  cursor: pointer;
  display: block;
  text-align: center;
}
.large-btn:hover, .small-btn:hover {
  text-decoration: none;
}
.blue-btn {
  background-color: var(--dark-blue-color);
}
.blue-btn:hover {
  background-color: var(--blue-color);
}
.orange-btn {
  background-color: var(--orange-color);
}
.orange-btn:hover {
  background-color: var(--dark-blue-color);
}
.light-blue-btn:hover {
  background-color: var(--light-blue-color);
}
/* --------------------------------------

Navbar

--------------------------------------- */
.navbar {
  padding-top: 0;
  padding-bottom: 0;
  background-color: var(--lightest-blue-color);
}
.navbar .nav-link {
  font-family: var(--heading-font);
  font-size: 1.25rem;
  line-height: 1.3;
  color: var(--dark-blue-color);
  font-weight: 400;
  text-decoration: none;
  margin-left: 0.4em;
  margin-right: 0.4em;
  padding: 1rem 0.5rem 0.7rem;
  border-bottom: 4px solid transparent;
}
.navbar .nav-link:hover {
  border-bottom: 4px solid var(--light-blue-color);
}
.navbar-nav .nav-link.active {
  font-weight: 700;
  color: var(--dark-blue-color);
  border-bottom: 4px solid var(--light-blue-color);
}
.navbar li {
  margin-bottom: 0;
}
.dropdown-menu {
  font-size: 1.1rem;
  border-radius: 0;
}
.dropdown-menu a {
  color: var(--dark-blue-color);
}
a.dropdown-item {
  font-family: var(--heading-font);
  text-decoration: none;
}
.dropdown-item.active, .dropdown-item:active {
  color: var(--dark-blue-color);
  background-color: var(--light-gray-color);
}
/* ----- Navbar toggler icon ----- */
.navbar-toggler {
  color: var(--dark-blue-color);
  border: 2px solid var(--dark-blue-color);
  opacity: 0.9;
  padding: 0.25rem 0.35rem;
  border-radius: 6px;
}
.navbar-toggler-icon {
  background-image: url("data:image/svg+xml;charset=utf8,%3Csvg viewBox='0 0 32 32' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath stroke='rgba(41, 76, 86, 1)' stroke-width='4' stroke-linecap='round' stroke-miterlimit='10' d='M4 8h24M4 16h24M4 24h24'/%3E%3C/svg%3E");
}
/* --------------------------------------

Homepage

--------------------------------------- */
.header-content {
  background-image: url(images/header-bg.jpg);
  background-repeat: no-repeat;
  background-size: cover;
  background-position: center 60%;
  padding: 0.8rem 0 0.8rem;
}
.header-content .container {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
/* ----- Hero Section ----- */
.hero-section {
  background-position: center 15%;
  padding: 5rem 0 5rem;
}
.hero-text p {
  font-size: 1.25rem;
}
.hero-image img {
  width: 100%;
  height: 280px;
  object-fit: cover;
}
.hero-content {
  justify-content: flex-end;
}
/* ----- Books ----- */
.book {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: 1.3rem;
  font-size: 1rem;
}
.book-image {
  width: 150px;
  flex-shrink: 0;
}
.book h3 {
  font-size: 1.3rem;
}
.book-text {
  flex-grow: 1;
}
.book-text p:last-child {
  margin-bottom: 0;
}
/* ----- Puzzle borders ----- */
.top-border img, .bottom-border img {
  width: 100%;
  height: auto;
}
/* ----- Services ----- */
.puzzle-container {
  position: relative;
  display: inline-block;
}
.puzzle-image {
  display: block;
  width: 100%;
  height: auto;
}
.centered-text {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translate(-50%, -50%);
  font-family: var(--heading-font);
  font-size: 2rem;
  color: #fff;
  text-align: center;
  line-height: 120%;
}
.centered-text span {
  font-family: var(--body-font);
  display: block;
  text-transform: uppercase;
  font-size: 1rem;
  line-height: 120%;
}
.centered-text a {
  text-decoration: none;
  color: #fff;
}
.centered-text a:hover span {
  text-decoration: underline;
}
.centered-text a span:hover {
  text-decoration: underline;
}
.puzzle-image.puzzle-1 {
  transform: rotate(-5deg);
}
.puzzle-image.puzzle-2 {
  transform: rotate(5deg);
}
.puzzle-image.puzzle-3 {
  transform: rotate(-5deg);
}
.puzzle-image.puzzle-4 {
  transform: rotate(5deg);
}
/* ----- About Laura ----- */
ul.custom-list {
  list-style: none;
  padding-left: 0;
}
ul.custom-list li {
  display: flex;
  align-items: center;
  margin-bottom: 0.7rem;
}
ul.custom-list li svg {
  width: 1.4em;
  height: 1.4em;
  flex-shrink: 0;
  margin-right: 0.9rem;
  fill: var(--dark-blue-color);
}
.photo-border-blue img {
  border: 1px solid var(--blue-color);
  border-radius: 8px;
  padding: 0.4rem;
  background-color: #fff;
}
.laura-photo img {
  width: 500px;
  height: auto;
}
/* ----- Free Offers ----- */
.offer {
  padding: 1.7rem;
  box-shadow: 1px 1px 6px 2px rgba(180, 180, 180, 0.50);
  border-radius: 10px;
  -webkit-box-shadow: 1px 1px 6px 2px rgba(180, 180, 180, 0.50);
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: flex-start;
  text-align: center;
  width: 100%;
}
.offer-title {
  color: var(--dark-blue-color);
  align-self: flex-end;
  text-align: end;
  line-height: 1.2;
}
.offer-title span {
  color: var(--blue-color);
  text-transform: uppercase;
  display: block;
  text-align: right;
}
/* ----- Testimonials ----- */
/* ----- Splide ----- */
.testimonial-carousel .splide__arrow {
  background: transparent;
}
.testimonial-carousel .splide__arrow--prev {
  left: -1.7em;
}
.testimonial-carousel .splide__arrow--next {
  right: -1.7em;
}
.testimonial-carousel .splide__slide {
  display: flex;
}
.testimonial-carousel .splide__arrow svg {
  fill: var(--dark-blue-color);
  height: 2em;
  width: 2em;
}
.testimonial-slide {
  padding-left: 2rem;
  padding-right: 2rem;
}
.testimonial-carousel .splide__arrow--prev svg {
  -webkit-transform: scaleX(1);
  -moz-transform: scaleX(1);
  -ms-transform: scaleX(1);
  -o-transform: scaleX(1);
  transform: scaleX(1);
}
.quotation-mark svg {
  width: 50px;
  height: auto;
}
.author, .author-title {
  font-style: normal;
  color: var(--dark-blue-color);
  font-weight: 700;
}
.author {
  margin-top: 1rem;
  display: block;
}
.author-title {
  display: block;
  font-weight: 400;
}
/* ----- Optin form ----- */
.form {
  display: flex;
  gap: 1rem;
  width: 100%;
}
.optin-form-text {
  display: flex;
  flex-direction: column;
  align-items: flex-start;
}
.optin-form-text h3 {
  text-transform: uppercase;
}
.optin-form {
  display: flex;
  align-items: center;
  gap: 0.5rem;
}
.form-field {
  border: 1px solid #CCCCCC;
  border-radius: 6px;
  padding: 0.5rem;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
  flex: 1; /* Makes the fields grow to fill available space */
}
.submit-button {
  color: #ffffff !important;
  font-size: 1rem;
  border-radius: 6px;
  padding: 0.5rem 1.1rem 0.5rem 1.1rem;
  text-decoration: none !important;
  word-break: break-word;
  cursor: pointer;
  display: inline-block;
  background-color: var(--dark-blue-color);
  border: none;
}
.submit-button:hover {
  text-decoration: none;
  background-color: var(--blue-color);
}
.small-type {
  font-size: 0.8rem;
  font-style: italic;
}
/* --------------------------------------

Footer

--------------------------------------- */
.footer-content {
  background-color: var(--dark-blue-color);
  color: #fff;
  padding: 3rem 0;
  font-size: 1rem;
}
.footer-links {
  display: flex;
  justify-content: space-between;
  align-items: center;
}
.footer-links p {
  margin-bottom: 0;
}
.social-links svg {
  width: 2rem;
  height: 2rem;
  color: #fff;
}
.social-links {
  display: flex;
  gap: 1.3rem;
}
/* --------------------------------------

Coaching Page

--------------------------------------- */
.page-header {
  margin-top: 3rem;
  margin-bottom: 1rem;
}
.grid-sessions {
  display: grid;
  grid-template-columns: repeat(5, 1fr); /* 5 equal columns */
  gap: 1rem;
}
.session-card {
  display: flex;
  flex-direction: column;
  height: 100%;
  border-radius: 1rem;
  box-shadow: 0px 1px 7px 0px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0px 1px 7px 0px rgba(0, 0, 0, 0.3);
}
.session-card-header {
  background-color: var(--dark-blue-color);
  border-top-left-radius: 1rem;
  border-top-right-radius: 1rem;
  padding: 1.5rem;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
}
.session-card-header h3 {
  font-size: 1.25rem;
  color: #fff;
  margin-bottom: 0;
}
.session-card-body {
  background-color: #fff;
  padding: 1.5rem;
  border-bottom-left-radius: 1rem;
  border-bottom-right-radius: 1rem;
  display: flex;
  justify-content: center;
  align-items: center;
  text-align: center;
  height: 100%;
}
.session-card-body h4 {
  font-size: 1.5rem;
  color: var(--dark-blue-color);
  margin-bottom: 0;
}
/* --------------------------------------

Contact page

--------------------------------------- */
.contact-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
  padding: 2rem;
  background-color: #fff;
  border-radius: 0.5rem;
}
.contact-form h3 {
  margin-bottom: 0.4rem;
  line-height: normal;
}
.interview-form {
  display: flex;
  flex-direction: column;
  gap: 1rem;
  width: 100%;
}
.interview-form .two-fields {
  display: flex;
  gap: 1rem;
}
/* ----- Contact form ----- */
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 .wpcf7-textarea {
  width: 100%;
  border: 1px solid #CCCCCC;
  border-radius: 6px;
  padding: 8px 8px 8px 8px;
  -moz-box-sizing: border-box;
  -webkit-box-sizing: border-box;
  box-sizing: border-box;
}
.wpcf7-submit {
  color: #ffffff !important;
  background-color: var(--dark-blue-color);
  font-size: 1rem;
  border-radius: 6px;
  border: none;
  padding: 0.5em 1.1em 0.5em 1.1em;
  text-decoration: none !important;
  word-break: break-word;
  cursor: pointer;
  display: inline-block;
}
.wpcf7-submit:hover {
  background-color: var(--blue-color);
}
.wpcf7-form {
  background-color: #fff;
  padding: 2rem;
  margin-top: 2rem;
}
.wpcf7 label {
  width: 100%;
  text-align: left;
  margin-bottom: 1rem;
}
#wpcf7-f120-o2 .wpcf7-form {
  background-color: transparent;
  padding: 0;
  margin-top: 0;
}
#wpcf7-f120-o2.wpcf7 label {
  width: 100%;
  text-align: left;
  margin-bottom: 0;
}
#wpcf7-f120-o2 .wpcf7-submit {
  width: 100%;
}
#wpcf7-f120-o2 .wpcf7-spinner {
  margin-left: auto;
  margin-right: auto;
}
/* --------------------------------------

Media page

--------------------------------------- */
.social-links.media-hub {
  display: flex;
  justify-content: center;
  gap: 2.5rem;
}
.social-links.media-hub img {
  width: 5rem;
  height: 5rem;
}
.horizontal-line {
  border: none;
  height: 1px;
  background-color: var(--dark-blue-color);
  width: 100%;
  margin: 3rem auto;
  opacity: 1;
}
.speakers-grid {
  display: grid;
  justify-content: center;
  grid-template-columns: repeat(6, 1fr);
  gap: 1.5rem;
}
.speaker {
  text-align: center;
  margin-bottom: 1rem;
}
.speaker-name {
  margin-top: 1rem;
}
.speaker-name h3 {
  font-size: 1.2rem;
  margin-bottom: 0.2rem;
}
.speaker-name p {
  font-size: 0.8rem;
  line-height: normal;
  margin-bottom: 0;
}
.speakers-grid .round-image img {
  width: 150px;
  height: 150px;
  border-radius: 50%;
  object-fit: cover;
}
/* --------------------------------------

Training page

--------------------------------------- */
blockquote.testimonial {
  background-color: var(--lightest-blue-color);
  padding: 2rem;
  margin-bottom: 1.5rem;
}
.course-info {
  display: flex;
  flex-direction: column;
  align-items: center;
  padding: 1.5rem;
  height: 100%;
  border: 1px solid var(--blue-color);
  border-radius: 1rem;
  box-shadow: 0px 1px 7px 0px rgba(0, 0, 0, 0.3);
  -webkit-box-shadow: 0px 1px 7px 0px rgba(0, 0, 0, 0.3);
}
.course-info p {
  margin-bottom: 0;
}
.course-info svg {
  width: 2.3rem;
  height: 2.3rem;
  color: var(--blue-color);
  margin-bottom: 0.5rem;
}
/* --------------------------------------

Responsive videos

--------------------------------------- */
.video-container {
  position: relative;
  width: 100%;
  padding-bottom: 56.25%; /* 16:9 ratio → 9 / 16 = 0.5625 */
  height: 0;
}
.video-container iframe {
  position: absolute;
  top: 0;
  left: 0;
  width: 100%;
  height: 100%;
}
/* --------------------------------------

Media queries

--------------------------------------- */
/* `xxl` applies to x-large devices (large desktops, less than 1400px) */
@media (max-width: 1399.98px) {
  .testimonial-carousel .splide__arrow--prev {
    left: 0.3em;
  }
  .testimonial-carousel .splide__arrow--next {
    right: 0.3em;
  }
}
/* `xl` applies to large devices (desktops, less than 1200px) */
@media (max-width: 1199.98px) {
  .book {
    flex-direction: column;
    align-items: center;
  }
  .book-text {
    display: flex;
    flex-direction: column;
  }
  .book-text > a {
    margin: 0 auto;
  }
  .speakers-grid {
    grid-template-columns: repeat(4, 1fr);
  }
}
/* `lg` applies to medium devices (tablets, less than 992px) */
@media (max-width: 991.98px) {
  h1 {
    font-size: 2.813rem;
  }
  h2 {
    font-size: 2.25rem;
  }
  h3 {
    font-size: 1.688rem;
  }
  h4 {
    font-size: 1.25rem;
  }
  .book {
    margin-bottom: 2rem;
  }
  .offer {
    margin-bottom: 1.5rem;
  }
  .laura-photo img {
    width: 340px;
  }
  .puzzle-container {
    margin-bottom: 1.5rem;
  }
  .grid-sessions {
    grid-template-columns: repeat(3, 1fr); /* 3 columns in first row */
  }
}
/* `md` applies to small devices (landscape phones, less than 768px) */
@media (max-width: 767.98px) {
  .logo {
    width: 120px;
    height: auto;
  }
  section {
    padding: 3rem 0 3rem;
  }
  .hero-section p {
    font-size: 1.1rem;
  }
  .book {
    flex-direction: row;
    align-items: flex-start;
  }
  .book-text {
    display: block;
  }
  .hero-text {
    background-color: rgba(255, 255, 255, 0.50);
    padding: 1.5rem;
  }
  .hero-section {
    background-position: 35% center;
    padding: 3rem 0 3rem;
  }
  .optin-form {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    flex-direction: column;
  }
  .form-field {
    width: 100%;
  }
  .optin-form-text {
    align-items: center;
  }
  .footer-links {
    align-items: flex-start;
    flex-direction: column;
    gap: 1rem;
  }
  .navbar .nav-link {
    margin-left: 0;
    padding: 1rem 0.5rem 0.7rem 0;
  }
  .offcanvas {
    background-color: var(--lightest-blue-color);
  }
  .grid-sessions {
    grid-template-columns: repeat(2, 1fr); /* Stack in one column */
  }
  .social-links.media-hub {
    gap: 1.5rem;
  }
  .social-links.media-hub img {
    width: 2.5rem;
    height: 2.5rem;
  }
  .speakers-grid {
    grid-template-columns: repeat(3, 1fr);
  }
  .speakers-grid .round-image img {
    width: 120px;
    height: 120px;
  }
}
/* `sm` applies to x-small devices (portrait phones, less than 576px) */
@media (max-width: 575.98px) {
  h1 {
    font-size: 2.25rem;
  }
  h2 {
    font-size: 1.813rem;
  }
  h3 {
    font-size: 1.563rem;
  }
  h4 {
    font-size: 1.25rem;
  }
  .centered-text {
    font-size: 1.7rem;
  }
  .hero-text {
    background-color: var(--lightest-blue-color);
    padding: 2rem 0 1rem;
  }
  .book-image {
    width: 120px;
  }
  .testimonial-carousel .splide__arrow--prev {
    left: 0.5em;
  }
  .testimonial-carousel .splide__arrow--next {
    right: 0.5em;
  }
  .puzzle-image {
    width: 70%;
    height: auto;
    margin-left: auto;
    margin-right: auto;
  }
  .grid-sessions {
    grid-template-columns: repeat(1, 1fr); /* Stack in one column */
  }
  .speakers-grid {
    grid-template-columns: repeat(2, 1fr);
  }
  .wpcf7-form {
    padding: 1.5rem;
  }
  .hero-section {
    background-image: none !important;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center 15%;
    padding: 0 0 2rem;
    background-color: var(--lightest-blue-color);
  }
  .interview-form {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    width: 100%;
    margin-bottom: 0.5rem;
  }
  .interview-form .two-fields {
    display: flex;
    gap: 1rem;
    flex-direction: column;
  }
}