/*
Theme Name: First Tracks Starter Theme
Author URI: https://firsttracksmarketing.com
Requires at least: 6.7
Tested up to: 6.7
Requires PHP: 7.2
Version: 0.1
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: firsttracks
*/

html {
  scroll-behavior: smooth;
}

:root {
	--font-family: 'Nunito Sans', sans-serif;
    --font-weight: 300;
}

:root .wp-block-group {
  background-color: transparent;
}

:root p {
  background-color: transparent;
}

body {
    background-color: white;
}

h1, h2, h3, h4, h5, h6 {
    font-family: Merriweather, serif;
}

ul {
    padding-left: 1.5rem;
    font-size: 1rem;
    line-height: 1.5rem;
}

a:visited {
    color: inherit;
}

a:hover {
    color: #231f20;
    text-decoration: none;
}

body input[type=date], 
body input[type=email], 
body input[type=number], 
body input[type=password], 
body input[type=search], 
body input[type=tel], 
body input[type=text], 
body input[type=url], 
body select, 
body textarea {
    border: 1px solid #D1D5DB;
    border-radius: 6px;
    padding: 0 14px;
    transition: all .3s;
}

.admin-bar .wc-memberships-frontend-banner, .admin-bar .wc-memberships.admin-restricted-content-notice {
    display: none;
}

.wp-block-group {
    background-color: transparent;
}

p.gform_required_legend {
    display: none;
}

hr.wp-block-separator {
    border-color: #D1D5DB;
    border-width: 1px;
}

/* Undo WordPress zeroing of margin-block-end on last children */
.is-layout-constrained > :last-child {
    margin-block-end: unset;
}

/* Headings */
.wp-block-heading {
    font-family: Merriweather, serif;
}

/* Buttons */
.wp-block-button .wp-block-button__link {
    border-radius: 6px;
    padding: 0.75rem;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25rem;
}

.wp-block-button:not(.is-style-secondary, .is-style-ghost) .wp-block-button__link {
    background-color: #E82A00;
    border: 2px solid #E82A00;
    color: white;
}

.wp-block-button.is-style-secondary .wp-block-button__link {
    border: 2px solid #E82A00;
    color: #E82A00;
}

.post-grid-heading .wp-block-button:not(.is-style-secondary, .is-style-ghost) .wp-block-button__link {
    border: 1px solid #231F20;
    color: #231F20;
    background-color: white;
}

/* Images */
.wp-block-post .wp-block-group > .wp-block-post-featured-image img {
    aspect-ratio: 1 / 1;
    object-fit: cover;
}

/* Hide rogue content paragraph on membership-restricted pages */
.home > .woocommerce {
    display: none;
}

body.access-restricted .wp-block-post-content > p:first-child {
    display: none;
}

/* Hide author avatar (for now) */
.wp-block-post-author__avatar {
    display: none;
}

/*************************************************
 * Header / Navigation (v1)
 *************************************************/

/* ---------- Logged In / Out Toggles ---------- */

.is-logged-in-only {
    display: none;
}

body.logged-in .is-logged-out-only {
    display: none !important;
}

body.logged-in .is-logged-in-only {
    display: flex;
}

/* ---------- Header Top (Promo Bar) ---------- */

.is-header-top {
    background-color: #231F20 !important;
    padding: 0.5rem 0;
    font-size: 0.875rem;
    line-height: 1.2;
}

.is-header-top > p {
    color: white;
    font-size: 0.875rem;
    line-height: 1.25rem;
    margin: 0;
    text-align: center;
}

/* ---------- Primary Navigation Row Shell ---------- */

.is-header-navigation {
    background-color: #fff;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 0 1px 0 rgb(48 49 51 / 5%), 0 2px 4px 0 rgb(48 49 51 / 10%);
}

.is-header-navigation-inner {
    gap: 1.5rem;
}

/* ---------- Logo ---------- */

.is-header-brand {
    flex: 0 0 auto;
}

.is-header-brand .wp-block-site-logo img {
    display: block;
    height: auto;
}

/* ---------- Center Menu (Desktop) ---------- */

.is-header-primary-menu {
    flex: 1 1 auto;
    justify-content: center;
}

.is-header-primary-menu .wp-block-navigation__container {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 2.25rem;
    margin: 0;
    padding: 0;
}

.is-header-primary-menu .wp-block-navigation-item__content {
    text-decoration: none;
    color: #111827;
}

.is-header-primary-menu .wp-block-navigation-item__content:hover {
    color: #c22e00;
}

.is-header-primary-menu .wp-block-navigation-item__label {
    font-size: 1rem;
    line-height: 1.5rem;
}

.is-header-primary-menu .wp-block-navigation__submenu-icon {
    margin-left: 0.25rem;
}

/* Active / open nav item turns red */
.is-header-primary-menu .wp-block-navigation-item.is-active > .wp-block-navigation-item__content,
.is-header-primary-menu .wp-block-navigation-item.current-menu-item > .wp-block-navigation-item__content,
.is-header-primary-menu .wp-block-navigation-item.open-on-click > .wp-block-navigation-item__content {
    color: #c22e00;
}

/* ---------- Dropdown Menus ---------- */

.is-header-primary-menu .wp-block-navigation__submenu-container {
    background: #fff;
    border: none;
    border-radius: 8px;
    box-shadow: 0 4px 16px rgb(0 0 0 / 12%);
    min-width: 225px !important;
    padding: 1rem 0.5rem;
}

.is-header-primary-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    padding: 0.5rem 1.25rem;
    font-size: 0.9375rem;
    font-weight: 400;
    color: #111827;
    white-space: nowrap;
}

.is-header-primary-menu .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
    color: #c22e00;
    background: transparent;
}

/* ---------- Utilities (Desktop Right) ---------- */

.is-header-utilities {
    flex: 0 0 auto;
    gap: 0.75rem;
}

.is-header-icons {
    gap: 0.75rem;
    align-items: center;
}

/* Account icon */
.is-header-account-icon {
    margin: 0;
    line-height: 1;
}

.is-header-account-icon a {
    display: flex;
    align-items: center;
    color: #111827;
    text-decoration: none;
}

.is-header-account-icon a:hover {
    color: #c22e00;
}

/* Search icon */
.is-header-search-icon {
    margin: 0;
    line-height: 1;
}

.is-header-search-icon a {
    display: flex;
    align-items: center;
    color: #111827;
    text-decoration: none;
}

.is-header-search-icon a:hover {
    color: #c22e00;
}

/* Cart button */
.is-header-cart-buttons {
    gap: 0.25rem;
}

.is-header-cart .wp-block-button__link {
    display: flex;
    align-items: center;
    background: none;
    border: none;
    padding: 0;
    color: #111827;
}

.is-header-cart .wp-block-button__link:hover {
    color: #c22e00;
}

/* Cart icon: only show when cart has items */
body .is-header-cart-buttons.is-layout-flex {
    display: none;
}

body.ct-cart-has-items .is-header-cart-buttons.is-layout-flex {
    display: flex;
}

/* Auth buttons */
.is-header-auth-buttons {
    gap: 0.5rem;
    align-items: center;
}

.is-header-sign-in .wp-block-button__link {
    text-decoration: none;
}

/* ---------- Mobile Panel ---------- */

.is-header-mobile-panel {
    display: none !important;
}

/* ---------- Navigation Overlay ---------- */

body.navigation-open {
    overflow: hidden;
}

.wp-block-navigation__responsive-container.is-menu-open {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    bottom: 0;
    z-index: 9000;
    background: #fff;
    overflow-y: auto;
}

.wp-block-navigation__responsive-container-close {
    position: fixed;
    right: 1rem;
    top: 0;
    height: 176px;
    z-index: 10000;
    background: none;
    border: none;
    cursor: pointer;
    color: #111827;
    padding: 0.25rem;
    display: flex;
    align-items: center;
    justify-content: center;
}

.wp-block-navigation__responsive-container-close:hover {
    color: #c22e00;
}

.is-header-navigation div.is-header-navigation-inner {
    padding: 1rem 2.5rem;
    max-width: 1280px;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container {
    display: flex;
    flex-direction: column;
    align-items: flex-start;
    gap: 0;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item {
    width: 100%;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
    /* display: flex;
    align-items: center;
    justify-content: space-between;
    width: 100%; */
    padding: 0.875rem 0;
    font-size: 1rem;
    font-weight: 600;
    color: #111827;
}

.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content:hover {
    color: #c22e00;
}

/* Override WP's global display:flex on submenus inside overlay */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-container {
    display: none;
}

/* Show submenu when toggle button is aria-expanded */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-icon[aria-expanded="true"] + .wp-block-navigation__submenu-container {
    display: flex;
    flex-direction: column;
}

/* Submenu styling in overlay — let WP Interactivity API handle show/hide */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
    box-shadow: none;
    border: none;
    padding: 0 0 0.5rem 1rem;
    background: transparent;
    position: static;
    width: 100%;
    visibility: visible;
    opacity: 1;
}

/* Submenu item content styles */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
    font-size: 0.9375rem;
    font-weight: 400;
    padding: 0.4rem 0;
    border: none;
    color: #374151;
}

/* Show submenu chevron icons in overlay */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
    display: flex !important;
    margin-left: auto;
}

.wp-block-navigation__responsive-container-close {
    display: none !important;
}

/* ---------- Nav Overlay Injected Panel ---------- */

.ct-nav-injected {
    width: 100%;
    margin-top: 1rem;
    padding-top: 1rem;
    border-top: 1px solid #e5e7eb;
}

.ct-nav-injected .is-header-mobile-links {
    display: flex;
    flex-direction: column;
    gap: 0;
    margin-bottom: 1rem;
    border-top: none;
}

.ct-nav-injected .is-header-mobile-links p {
    margin: 0 !important;
    padding: 0.875rem 0;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5rem;
}

.ct-nav-injected .is-header-mobile-links a {
    color: #111827;
    text-decoration: none;
}

.ct-nav-injected .is-header-mobile-links a:hover {
    color: #c22e00;
}

.ct-nav-injected .is-header-mobile-search {
    padding: 0;
    margin-top: 1rem;
}

.wp-block-navigation .ct-composer-search {
    padding: 0;
}

/* ---------- Header Navigation Z-index ---------- */

.is-header-navigation {
    position: relative;
    z-index: 9500;
}

header.wp-block-template-part {
    position: relative;
    z-index: 9500;
}

/* ---------- Header Search Bar ---------- */

.is-header-search-bar {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 9400;
    background: #fff;
    border-bottom: 1px solid #e5e7eb;
    box-shadow: 0 4px 12px rgb(0 0 0 / 8%);
    padding: 1rem 2.5rem;
    transform: translateY(-8px);
    opacity: 0;
    pointer-events: none;
    transition: opacity 0.25s ease, transform 0.25s ease;
}

.is-header-search-bar.wp-block-group {
    background-color: #FFF;
}

.is-header-search-bar.is-search-open {
    transform: translateY(0);
    opacity: 1;
    pointer-events: auto;
}

/* ---------- Responsive Behavior ---------- */

/* Tablet and down */
@media (width <= 1099px) {
    .has-modal-open .admin-bar .is-menu-open .wp-block-navigation__responsive-dialog {
       margin-top: 0;
    }

    .is-header-navigation-inner {
        gap: 1rem;
    }

    /* Shift hamburger to the right */
    .is-header-primary-menu.wp-block-group {
        order: 3;
    }

    button.wp-block-navigation__responsive-container-open {
        display: flex;
        justify-content: center;
        min-width: 32px;
    }

    button.wp-block-navigation__responsive-container-open svg[width="24"] {
        width: 32px !important;
        height: 32px !important;
    }

    /* Hide the center nav links — moved into hamburger */
    .is-header-primary-menu {
        flex: 0 0 auto;
    }

    .is-header-primary-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__container {
        width: 100%;
    }

    .is-header-primary-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content ul.wp-block-navigation__container li.wp-block-navigation-item {
        /* flex-direction: row;
        justify-content: flex-start; */
        display: block;
    }

    /* Hide Sign In — it's in the overlay */
    .wp-block-button.is-header-sign-in {
        display: none;
    }

    /* Hide desktop account icon — not needed at this size */
    .is-header-account-icon {
        display: none !important;
    }

    .is-header-cta .wp-block-button__link {
        padding-inline: 0.85rem;
    }

    /* Close button height matches tablet header */
    .wp-block-navigation__responsive-container-close {
        height: 110px;
    }

    /* Mobile search form: single row on tablet */
    .is-header-mobile-search .ct-composer-search__form {
        /* display: flex;
        flex-direction: row;
        flex-wrap: nowrap;
        gap: 0.5rem;
        align-items: center; */
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-icon[aria-expanded="true"] + .wp-block-navigation__submenu-container {
        gap: 1rem;
        padding: 1rem 0 0 1rem;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content .has-child .wp-block-navigation__submenu-icon[aria-expanded="true"] + .wp-block-navigation__submenu-container a.wp-block-navigation-item__content {
        padding: 0;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content {
        display: inline;
    }

    .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-icon {
        display: inline-flex !important;
        margin-left: 0.5rem;
    }

    .is-header-primary-menu ul li ul li span.wp-block-navigation-item__label {
        font-size: 0.875rem;
        font-weight: 500;
        line-height: 1.25rem;
    }

    .is-header-primary-menu .wp-block-navigation-item__label {
        font-weight: 700;
    }
}

/* Mobile */
@media (width <= 767px) {
    .is-header-navigation div.is-header-navigation-inner {
        justify-content: flex-end;
        padding: 0.625rem 1rem;
    }

    .is-header-navigation-inner .is-header-brand {
        margin-right: auto;
        max-width: 112px;
    }

    .is-header-primary-menu.wp-block-group {
        margin-left: 1rem;
    }

    .is-header-primary-menu .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content {
        padding: 1.5rem 1rem;
        align-items: flex-start;
    }

    /* Hide desktop search */
    .is-header-search-icon {
        display: none;
    }
    
    /* Hide search and cart icons from bar on mobile */
    body .is-header-icons.wp-block-group {
        display: none;
    }

    body .is-header-cart-buttons {
        display: none;
    }

    /* Close button height matches mobile header */
    .wp-block-navigation__responsive-container-close {
        height: 80px;
    }

    /* Hide entirely on mobile — search is in the nav overlay instead */
    .is-header-search-bar {
        display: none !important;
    }

}

/* Tablet down to just before mobile */
@media (768px <= width <= 1099px) {
    .is-header-navigation-inner {
        /* justify-content: flex-end !important; */
        padding: 1rem 2.5rem;
    }

    .is-header-navigation-inner .is-header-brand {
        margin-right: auto;
        max-width: 160px;
    }

    .is-header-navigation-inner .is-header-primary-menu.wp-block-group {
        margin-left: 1.5rem;
    }

    .is-header-navigation-inner .is-header-utilities {
        flex-direction: row-reverse;
        gap: 1.5rem;
    }

    .is-header-navigation-inner .is-header-icons {
        gap: 1.5rem;
    }

    .wp-block-navigation__responsive-container-content {
        padding: 2rem 2.5rem;
    }
    
}

/* Desktop */
@media (width > 1100px) {
    .wp-block-navigation__responsive-container {
        display: block;
        position: inherit;
    }
    
    .is-header-mobile-panel {
        display: none !important;
    }

    .ct-nav-injected {
        display: none !important;
    }

    .wp-block-group.is-header-icons {
        border-right: 1px solid #BABB75;
        gap: 1rem;
        margin-right: 1.5rem;
        padding-right: 1rem;
    }

    .is-header-sign-in.wp-block-button a.wp-block-button__link {
        color: #231F20;
        margin-right: 1.5rem;
        padding: 0;
    }

    .is-header-primary-menu .wp-block-navigation__container > li.wp-block-navigation-item {
        padding: 1rem 0;
    }

    /* Hide the hamburger button on desktop */
    .wp-block-navigation__responsive-container-open {
        display: none !important;
    }
}

/* Phone */
@media (width <= 600px) {
    .is-header-brand .wp-block-site-logo img {
        max-width: 120px;
        height: auto;
    }

    .is-header-auth-buttons .wp-block-button__link {
        padding: 0.45rem 0.85rem;
    }
}

/* Footer */
footer.wp-block-template-part {
    background-color: #231F20;
}

footer.wp-block-template-part .wp-block-group {
    margin: 0 auto;
    max-width: 1280px;
}

footer .wp-block-group h2, 
footer .wp-block-group h3, 
footer .wp-block-group p, 
footer .wp-block-group a {
    color: white;
}

footer .wp-block-group .ginput_container > span {
    margin-bottom: 0 !important;
}

footer .wp-block-group .gform-footer > input[type="submit"] {
    background-color: #E82A00;
    border: 1px solid #E82A00;
    border-radius: 4px;
    color: white;
    font-weight: 700;
}

footer hr.wp-block-separator {
    border: 1px solid #504c4d;
    margin-block-start: 2.5rem !important;
    margin-block-end: 2rem !important;
    margin-inline: 0 !important;
    width: 100%;
}

footer .wp-block-group h3 {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1rem !important;
    line-height: 1.5rem;
    margin-bottom: 1rem;
}

footer .wp-block-group nav, 
footer .wp-block-group nav ul {
    background-color: transparent;
    color: white;
}

footer .wp-block-group nav {
    margin-bottom: 2.5rem !important;
}

footer .wp-block-group ul {
    gap: 1rem;
}

footer .wp-block-group nav li {
    font-size: 1rem !important;
}

footer.wp-block-template-part .wp-block-group > p {
    font-size: 0.875rem !important;
    line-height: 1.25rem;
}

.gfield--input-type-captcha {
    display: none;
}

/* Mobile */
@media (width <= 767px) {
    footer.wp-block-template-part {
        margin-top: 3rem;
    }

    footer.wp-block-template-part .wp-block-group {
        padding: 2.5rem 1rem 1.5rem;
    }

    footer .wp-block-group h2 {
        font-size: 1.25rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }

    footer .wp-block-group p {
        margin-bottom: 1rem !important;
    }

    footer .wp-block-group .ginput_container input {
        padding: 0.675rem 0.5rem !important;
        width: 100% !important;
        border-radius: 4px;
    }

    footer .wp-block-group .gform_fields {
        gap: 0.5rem !important;
    }

    footer .wp-block-group .gform-footer {
        margin: 0.5rem 0 0 !important;
        padding: 0 !important;
    }

    footer .wp-block-group .gform-footer > input[type="submit"] {
        font-size: 0.75rem;
        line-height: 1.25rem !important;
        margin: 0;
        padding: 0.675rem 0.75rem;
        width: 100%;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    footer .footer-nav.wp-block-columns {
        display: flex;
        flex-wrap: wrap !important;
        gap: 1.5rem 1rem;
        width: 100%;
    }

    footer .footer-nav.wp-block-columns .wp-block-column {
        flex-basis: calc(50% - 0.5rem) !important;
    }
    
}

/* Tablet and up */
@media (width >= 768px) {
    body:not(.home) footer.wp-block-template-part {
        margin-top: 5rem;
    }

    footer.wp-block-template-part > .wp-block-group > .wp-block-columns {
        width: 100%;
    }

    footer.wp-block-template-part .wp-block-group {
        padding: 2.5rem 2.5rem 1.5rem;
    }

    footer h2 {
        font-size: 1.75rem !important;
        line-height: 2rem !important;
        margin-bottom: 1rem !important;
    }

    footer h2 + p.has-medium-font-size {
        font-size: 1rem !important;
        line-height: 1.5rem !important;
        margin-bottom: 1.5rem !important;
    }

    footer .gform_wrapper.gravity-theme form {
        display: flex;
        align-items: center;
        gap: 1rem;
        justify-content: space-between;
    }

    footer .gform_wrapper.gravity-theme .gform_fields {
        display: flex;
        flex-direction: row;
        gap: 1rem;
    }

    footer .gform_wrapper.gravity-theme .gfield input {
        border-radius: 4px;
        font-size: 1rem !important;
        line-height: 1.5rem !important;
        padding: 0.675rem 1rem;
    }

    footer .gform_wrapper.gravity-theme .gfield input[type="email"] {
        width: 100%;
    }

    footer .gform-body.gform_body {
        flex: 1;
    }

    footer .gform-body.gform_body .gform_fields > * {
        width: 100%;
    }

    footer .gform_wrapper.gravity-theme .gform_footer {
        margin: 0;
        padding: 0;
    }

    footer .wp-block-group .gform-footer > input[type="submit"] {
        font-size: 0.875rem;
        line-height: 1.25rem !important;
        margin: 0;
        padding: 0.75rem;
        width: 100%;
    }
}

/* Desktop */
@media (width > 960px) {
    footer.wp-block-template-part > .wp-block-group > .footer-nav.wp-block-columns {
        gap: 16%;
    }

    footer.wp-block-template-part > .wp-block-group > .wp-block-columns:not(.footer-nav) {
        align-items: center !important;
    }

    footer .wp-block-group nav {
        margin-bottom: 0 !important;
    }

    footer h2 + p.has-medium-font-size {
        margin-bottom: 0 !important;
    }
}

/* Post Grid Heading */
.wp-block-group > .wp-block-group .post-grid-heading {
    width: 100%;
    justify-content: space-between;
}

.wp-block-group[class*=" is-section-"] :where(.wp-block-separator.is-style-dots),
.wp-block-group[class^="is-section-"] :where(.wp-block-separator.is-style-dots) {
  border: 0;
  height: 1px;
  background: repeating-linear-gradient(
    to right,
    currentcolor 0 3px,
    transparent 3px 5px
  ) !important;
  margin: 0 1rem;
}

/* Disable the built-in text pseudo element */
.wp-block-group[class*=" is-section-"] :where(.wp-block-separator.is-style-dots)::before,
.wp-block-group[class^="is-section-"] :where(.wp-block-separator.is-style-dots)::before {
  content: none;
}

/* Mobile */
@media (width <= 767px) {
    .wp-block-group > .wp-block-group .post-grid-heading {
        margin-bottom: 1.5rem;
    }

    .wp-block-group > .wp-block-group .post-grid-heading .wp-block-buttons {
        display: none;
    }
}

/* Tablet and up */
@media (width >= 768px) {
   .wp-block-group > .wp-block-group .post-grid-heading {
        margin-bottom: 2.5rem;
    }
}


/*************************************************
 * WooCommerce Shop Archive
 *************************************************/

/* ---------- Page Layout ---------- */

.ct-shop-archive {
    padding: 2rem 2.5rem 4rem;
}

/* ---------- Banner ---------- */

.post-type-archive-product .wp-block-cover.is-section-hero h2.wp-block-heading {
    margin-bottom: 0;
}

.post-type-archive-product .wp-block-cover.is-light.is-section-hero {
    margin-bottom: 0;
}

/* ---------- Jump To Dropdown ---------- */

details.ct-shop-jump {
    border-bottom: 1px solid #D1D5DB;
    margin-bottom: 2.75rem;
}

.ct-shop-jump__summary {
    cursor: pointer;
    display: flex;
    align-items: center;
    justify-content: space-between;
    user-select: none;
}

.ct-shop-jump__current {
    color: #E82A00;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5rem;
}

.ct-shop-jump__summary::-webkit-details-marker {
    display: none;
}

.ct-shop-jump__right {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-weight: 400;
    font-size: 0.9375rem;
    color: #374151;
}

.ct-shop-jump__icon {
    display: flex;
    align-items: center;
    transition: transform 0.2s ease;
}

.ct-shop-jump[open] .ct-shop-jump__icon {
    transform: rotate(180deg);
}

.ct-shop-jump__panel {
    border-top: 1px solid #D1D5DB;
    display: flex;
    flex-direction: column;
}

.ct-shop-jump__link {
    font-size: 1rem;
    font-weight: 700;
    color: #E82A00;
    text-decoration: none;
    padding: 0.5rem 0;
}

.ct-shop-jump__link:visited {
    color: #E82A00;
}

/* ---------- Category Sections ---------- */

.ct-shop-section {
    margin-bottom: 3rem;
}

h2.ct-shop-section__heading {
}

/* ---------- Product Grid ---------- */

.post-type-archive-product main.wp-block-group {
    padding-top: 0;
}

.ct-shop-grid.wp-block-woocommerce-product-collection {
    gap: 1.5rem;
}

.ct-shop-grid .wc-block-product-template__responsive.wp-block-woocommerce-product-template {
    gap: 1.5rem;
}

/* Product card */
.ct-shop-grid .wc-block-product {
    display: flex;
    flex-direction: column;
}

.ct-shop-grid .wc-block-product .wp-block-woocommerce-product-image {
    margin-bottom: 0.75rem;
}

.wc-block-components-product-image a {
    border: 1px solid #E5E7EB;
}

.ct-shop-grid .wc-block-product .wp-block-woocommerce-product-image img {
    width: 100%;
    height: auto;
    aspect-ratio: 1 / 1;
    object-fit: cover;
    border: 1px solid #f3f4f6;
    border-radius: 3px;
}

/* Category label */
.ct-shop-grid .ct-product-card__cat.wp-block-post-terms {
    display: block;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.08em;
    color: #6b7280;
    margin-bottom: 0.25rem;
}

.ct-shop-grid .ct-product-card__cat.wp-block-post-terms a {
    color: #6b7280;
    text-decoration: none;
}

/* Product title */
.taxonomy-product_cat {
    color: #6B7280;
    font-weight: 400;
}

li.type-product h2.wp-block-post-title {
    font-family: "Nunito Sans", sans-serif;
    font-weight: 500;
}


/* Price */
.ct-shop-grid .wp-block-woocommerce-product-price {
    font-size: 0.875rem;
    color: #374151;
    margin: 0;
}

/* Desktop jump links — horizontal pill row */
nav.ct-shop-jump-desktop {
    display: flex;
    gap: 1.5rem;
    margin-bottom: 4.5rem;
}

.ct-shop-jump-desktop__link {
    font-size: 1rem;
    font-weight: 700;
    color: #E82A00;
}

.ct-shop-jump-desktop__link:visited {
    color: #E82A00;
}

/* ---------- Responsive ---------- */

/* Mobile */
@media (width <= 767px) {
    .ct-shop-archive {
        padding: 1rem 1rem 3rem;
    }

    .ct-shop-title {
        padding: 1.25rem 1rem;
        font-size: 1.5rem;
    }

    .ct-shop-jump__summary {
        padding: 1rem;
    }

    .ct-shop-jump__panel {
        padding: 1rem;
    }

    nav.ct-shop-jump-desktop {
        display: none;
    }

    div.ct-shop-section {
        margin-bottom: 3rem;
        padding: 0 1rem;
    }

    h2.ct-shop-section__heading {
        font-size: 1.5rem;
        line-height: 2rem;
        margin-bottom: 1.5rem;
    }

    .ct-shop-section ul.wc-block-product-template__responsive {
        gap: 2rem 1rem;
    }

    .taxonomy-product_cat {
        font-size: 0.75rem;
        line-height: 1.25rem;
        margin-bottom: 0.25rem;
    }

    li.type-product h2.wp-block-post-title {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 0.25rem;
    }

    .wc-block-components-product-price {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }
}

/* Tablet */
@media (768px <= width <= 960px) {
    .ct-shop-archive {
        padding: 1.5rem 1.5rem 3rem;
    }

    .ct-shop-title {
        padding: 1.5rem;
    }

    .ct-shop-jump__summary {
        padding: 1rem 2.5rem;
    }

    .ct-shop-jump__panel {
        padding: 1rem 2.5rem;
    }

    div.ct-shop-section {
        margin-bottom: 5rem;
        padding: 0 2.5rem;
    }

    h2.ct-shop-section__heading {
        font-size: 2.25rem;
        line-height: 3rem;
        margin-bottom: 3rem;
    }

    .ct-shop-section ul.wc-block-product-template__responsive {
        gap: 4rem 1.5rem;
        grid-template-columns: repeat(auto-fill, minmax(max(150px, calc(50% - .9375em)), 1fr));
    }

    .taxonomy-product_cat {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 0.25rem;
    }

    li.type-product h2.wp-block-post-title {
        font-size: 1rem;
        line-height: 1.5rem;
        margin-bottom: 0.25rem;
    }

    .wc-block-components-product-price {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }
}

/* Hide desktop nav on tablet/mobile, show dropdown instead */
@media (width <= 960px) {
    .ct-shop-jump-desktop {
        display: none;
    }
}

/* Hide dropdown on desktop */
@media (width > 960px) {
    .ct-shop-jump {
        display: none;
    }

    .post-type-archive-product .wp-block-cover.is-light.is-section-hero {
        margin-bottom: 1.5rem;
    }

    nav.ct-shop-jump-desktop, div.ct-shop-section {
        padding: 0 2.5rem;
    }

    div.ct-shop-section {
        margin-bottom: 5rem;
    }

    h2.ct-shop-section__heading {
        font-size: 2.25rem;
        line-height: 2.75rem;
        margin-bottom: 3rem;
    }

    .ct-shop-section ul.wc-block-product-template__responsive {
        gap: 5.5rem 2.5rem;
        grid-template-columns: repeat(auto-fill, minmax(max(270px, calc(25% - 1.875em)), 1fr));
    }

    .taxonomy-product_cat {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 0.25rem;
    }

    li.type-product h2.wp-block-post-title {
        font-size: 1rem;
        line-height: 1.5rem;
        margin-bottom: 0.25rem;
    }

    .wc-block-components-product-price {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }
}


/* ==========================================================
   Login Page (WooCommerce)
   ========================================================== */

/* Header / logo bar */
.ct-login-heading {
    box-shadow: 0 0 1px 0 rgb(48 49 51 / 5%), 0 2px 4px 0 rgb(48 49 51 / 10%);
    text-align: center;
}

/* Main wrapper (your block group) */
.ct-login-card {
    margin: 0 auto;
    max-width: 486px;
    padding: 0 1rem;
}

.ct-login-card > h2 {
    text-align: center;
    text-transform: capitalize;
}

/* Hide WooCommerce's internal "Login" heading */
.ct-login-card .woocommerce > h2 {
    display: none;
}

/* ----------------------------------------------------------
   Form base
---------------------------------------------------------- */
.ct-login-card .woocommerce form.login {
    border: 0;
    padding: 0;
    margin: 0;
}

/* Your output currently has <br> sprinkled in.
   This keeps the layout from breaking. */
.ct-login-card .woocommerce form.login br {
    display: none;
}

/* Spacing between rows */
.ct-login-card .woocommerce-form-row {
    margin: 0 0 16px;
}

/* ----------------------------------------------------------
   Accessible "placeholder-style" inputs
   - keep the <label> in the DOM for accessibility
   - visually hide it (screen-reader only)
---------------------------------------------------------- */
.ct-login-card .woocommerce-form-row label {
    position: absolute !important;
    width: 1px;
    height: 1px;
    padding: 0;
    margin: -1px;
    overflow: hidden;
    clip: rect(0, 0, 0, 0);
    white-space: nowrap;
    border: 0;
}

/* Inputs */
.ct-login-card .woocommerce form .form-row input[type="text"], 
.ct-login-card .woocommerce form .form-row input[type="email"], 
.ct-login-card .woocommerce form .form-row input[type="password"] {
    width: 100%;
    padding: 0.675rem 1rem;
    border-radius: 4px;
    border: 1px solid #D1D5DB;
    font-size: 1rem;
    background: #fff;
    line-height: 1.5rem;
}

/* Focus state */
.ct-login-card .woocommerce input:focus {
    outline: none;
    border-color: #b6c2d2;
    box-shadow: 0 0 0 3px rgb(0 0 0 / 6%);
}

/* Password wrapper + eye button */
.ct-login-card .password-input {
    display: flex;
    align-items: center;
    width: 100%;
}

.ct-login-card .show-password-input {
    margin-left: -44px;
    background: none;
    border: 0;
    cursor: pointer;
}

/* ----------------------------------------------------------
   Remember + Lost password inline, button below
   NOTE: This expects the JS below to move .lost_password
   inside the .form-row.
---------------------------------------------------------- */
.ct-login-card form.login .form-row {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    margin-bottom: 1.5rem;
    padding: 0;
}

/* Remember me (left) */
.ct-login-card .woocommerce-form__label-for-checkbox {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    font-size: 14px;
    margin: 0;
}

/* Lost password (right) */
.ct-lost-password-inline {
    margin-left: auto;
}

.ct-login-card .form-row .lost_password {
    margin: 0;
    font-size: 14px;
    margin-left: auto;   /* pushes it to the right */
}

.ct-login-card .form-row .lost_password a {
    text-decoration: underline;
}

/* Button below (full width) */
.ct-login-card .woocommerce button.woocommerce-button {
    background: #E82A00;
    border-radius: 6px;
    color: #fff;
    font-size: 0.75rem;
    line-height: 1.25rem;
    font-weight: 700;
    margin-right: 0;
    padding: 0.675rem;
    text-align: center;
    text-transform: capitalize;
    width: 100%;
}

.ct-login-card button.woocommerce-button:hover {
    filter: brightness(0.95);
}

.ct-login-card form.login .form-row input#rememberme + span {
    position: relative;
    bottom: 0.125rem;
    margin-left: 0.25rem;
}

.ct-lost-password-inline {
    text-decoration: underline;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
    margin-left: auto;
    position: relative;
    bottom: 0.5rem;
}

/* Back link */
.ct-login-card > p {
    text-align: center;
}

.ct-login-card p:last-child a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
}

.ct-login-card.has-global-padding > p {
    margin-top: 1rem;
}

@media (width <= 767px) {
    .ct-login-heading {
        margin-bottom: 2.5rem;
        padding: 0.625rem 0;
    }

    .ct-login-card > h2 {
        font-size: 1.5rem;
        line-height: 1.75rem;
        margin-bottom: 1.5rem;
    }

    .ct-login-heading .wp-block-image > a {
        max-width: 112px;
    }
}

@media (768px <= width <= 960px) {
  .ct-login-heading .wp-block-image > a {
    max-width: 157px;
  }
}

@media (width >= 768px) {
    .ct-login-heading {
        margin-bottom: 5rem;
        padding: 1rem 0;
    }

    .ct-login-card > h2 {
        font-size: 2rem;
        line-height: 2.5rem;
        margin-bottom: 2.5rem;
    }

    .ct-login-card .woocommerce button.woocommerce-button {
        font-size: 0.875rem;
        padding: 0.75rem;
    }
}

@media (width > 960px) {
  .ct-login-heading .wp-block-image > a {
    max-width: 225px;
  }
}


/*************************************************
 * WooCommerce Single Product Page
 *************************************************/

/* ---------- Page Layout ---------- */

.single-product main.ct-product-single {
    max-width: 1280px;
    margin: 3rem auto 5rem;
    padding: 0 2.5rem;
}

.ct-product-columns.wp-block-columns {
    gap: 5rem;
    align-items: flex-start;
    margin-bottom: 5rem;
}

/* ---------- Gallery ---------- */

.single-product.woocommerce div.product div.images {
    margin-bottom: 0;
}

.ct-product-gallery-col .woocommerce-product-gallery {
    display: flex;
    flex-direction: row-reverse;
    gap: 1rem;
}

.ct-product-gallery-col .woocommerce-product-gallery__wrapper {
    flex: 1 1 auto;
}

.single-product .woocommerce-product-gallery .flex-viewport,
.product-type-simple.single-product.woocommerce div.product div.images {
    border: 1px solid #E5E7EB;
}

.ct-product-gallery-col .flex-control-thumbs {
    display: flex;
    flex-direction: column;
    gap: 1rem;
    flex: 0 0 80px;
    list-style: none;
    margin: 0;
    padding: 0;
    order: 0;
}

.ct-product-gallery-col .flex-control-thumbs li {
    margin: 0;
    padding: 0;
    line-height: 0;
}

.ct-product-gallery-col .flex-control-thumbs img {
    /* width: 72px !important;
    height: 72px !important;
    max-width: 72px !important;
    max-height: 72px !important; */
    object-fit: cover;
    border: 1px solid #E5E7EB;
    cursor: pointer;
    display: block;
}

.ct-product-gallery-col .flex-control-thumbs img.flex-active,
.ct-product-gallery-col .flex-control-thumbs img:hover {
    border-color: #231F20;
}

.ct-product-gallery-col .woocommerce-product-gallery__image img {
    width: 100%;
    height: auto;
}

.woocommerce div.product div.ct-product-gallery-col div.images .flex-control-thumbs li.gallery-more-tile {
    border: 1px solid #f2f3f5;
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 50px;
    padding: 0.5rem 1rem;
}

/* Zoom icon */
.ct-product-gallery-col .woocommerce-product-gallery__trigger {
    top: 0.75rem;
    right: 0.75rem;
}

/* ---------- Product Info ---------- */

.ct-product-info-col {
}

/* Category label */
.ct-product-category.wp-block-post-terms {
    font-weight: 400;
    color: #6B7280;
}

.ct-product-category.wp-block-post-terms a {
    color: #6B7280;
    text-decoration: none;
}

/* Title */
.ct-product-title.wp-block-post-title {
}

/* Price */
.ct-product-price .woocommerce-Price-amount {
}

.single-product .wc-block-components-product-price {
    font-weight: 400;
}

.ct-product-price {
    margin-bottom: 1.25rem;
}

/* ---------- Variations / Add to Cart Form ---------- */

.ct-product-info-col .woocommerce-variation-add-to-cart,
.ct-product-info-col form.cart {
    margin-top: 0;
}

/* Variation labels */
.single-product .ct-product-info-col .variations th.label label {
    margin: 0;
}

.ct-product-info-col .variations {
    width: 100%;
    border: none;
    margin-bottom: 1rem;
}

.ct-product-info-col .variations td, 
.ct-product-info-col .variations th {
    line-height: inherit !important;
}

.single-product.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item {
    box-shadow: none;
    border: 1px solid #D1D5DB;
    border-radius: 8px !important;
    padding: 0;
}

.single-product.woo-variation-swatches .wvs-style-squared.variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item .variable-item-span {
    padding: 0.5rem 1rem;
}

/* Swatch plugin overrides — pill style */
.ct-product-info-col .tawcvs-swatches .swatch {
    border-radius: 4px;
    border: 2px solid #e5e7eb;
    padding: 0.35rem 0.75rem;
    font-size: 0.875rem;
    font-weight: 500;
    cursor: pointer;
    transition: border-color 0.15s ease, color 0.15s ease;
    color: #111827;
}

.ct-product-info-col .tawcvs-swatches .swatch:hover {
    border-color: #111827;
}

.ct-product-info-col .tawcvs-swatches .swatch.selected {
    border-color: #111827;
    background: #111827;
    color: #fff;
}

/* Quantity stepper */
.wp-block-woocommerce-add-to-cart-form .variations_button {
    display: flex;
}

.woocommerce div.product .ct-product-info-col form.cart div.quantity {
    display: inline-flex;
    align-items: center;
    border: 1px solid #d1d5db;
    border-radius: 8px;
    overflow: hidden;
    margin-right: 0.75rem;
}

.ct-product-info-col .quantity input[type="number"] {
    width: 48px;
    border: none;
    text-align: center;
    font-size: 1rem;
    font-weight: 600;
    padding: 0.5rem 0;
    appearance: textfield;
}

.ct-product-info-col .quantity input[type="number"]::-webkit-outer-spin-button,
.ct-product-info-col .quantity input[type="number"]::-webkit-inner-spin-button {
    appearance: none;
    margin: 0;
}

.woocommerce div.product form.cart .variations tbody {
    display: flex;
    flex-direction: column;
}

/* Cart row — stack quantity above button */
.woocommerce div.product .ct-product-info-col form.cart {
    display: flex;
    flex-direction: column;
    margin-bottom: 1.5rem;
}

.single-product.woocommerce div.product .ct-product-info-col form.cart {
    flex-direction: row;
}

/* Variations */
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item.selected:not(.no-stock),
.woo-variation-swatches .variable-items-wrapper .variable-item:not(.radio-variable-item).button-variable-item:hover {
    box-shadow: rgb(232 42 0) 0 0 0 2px;
}

/* Add to Cart button */
.ct-product-info-col .single_add_to_cart_button, 
.ct-product-info-col button[name="add-to-cart"], 
.ct-product-info-col .woocommerce-variation-add-to-cart .single_add_to_cart_button, 
.ct-product-info-col .single_add_to_cart_button.button.alt {
    width: 100%;
    background-color: #E82A00 !important;
    background: #E82A00 !important;
    color: #fff !important;
    border: none !important;
    border-radius: 6px !important;
    padding: 0.75rem 2rem;
    font-family: 'Nunito Sans', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    cursor: pointer;
    text-transform: none;
    transition: background-color 0.15s ease;
    margin-top: 0.5rem;
    text-align: center;
}

.ct-product-info-col .single_add_to_cart_button:hover,
.ct-product-info-col button[name="add-to-cart"]:hover,
.ct-product-info-col .woocommerce-variation-add-to-cart .single_add_to_cart_button:hover,
.ct-product-info-col .single_add_to_cart_button.button.alt:hover {
    background-color: #9c2c00 !important;
    background: #9c2c00 !important;
}

/* ---------- Product Details Accordion ---------- */

.wp-block-woocommerce-accordion-group .accordion-item__toggle>span {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1rem;
    font-weight: 700;
    line-height: 1.5rem;
}

.wp-block-woocommerce-accordion-group .wp-block-woocommerce-accordion-item {
    border-bottom: 1px solid #D1D5DB;
}

.wp-block-woocommerce-accordion-group .wp-block-woocommerce-accordion-item:first-of-type {
    border-top: 1px solid #D1D5DB;
}

.wp-block-woocommerce-accordion-group .accordion-item__toggle {
    padding: 1rem 0;
}

.wp-block-woocommerce-product-details.is-style-minimal details {
    margin: 0;
}

.wp-block-woocommerce-product-details.is-style-minimal details summary {
    display: flex;
    align-items: center;
    justify-content: space-between;
    padding: 1rem 0;
    border-top: 1px solid #e5e7eb;
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1rem !important;
    font-weight: 600;
    color: #111827;
    cursor: pointer;
    list-style: none;
}

.wp-block-woocommerce-product-details.is-style-minimal details:last-child {
    border-bottom: 1px solid #e5e7eb;
}

.wp-block-woocommerce-product-details.is-style-minimal details summary::-webkit-details-marker {
    display: none;
}

.wp-block-woocommerce-product-details.is-style-minimal details[open] summary {
    border-bottom: none;
}

.wp-block-woocommerce-product-details.is-style-minimal details .wc-block-product-details__content,
.wp-block-woocommerce-product-details.is-style-minimal details > *:not(summary) {
    padding: 0 0 1rem;
    font-size: 0.9375rem;
    line-height: 1.6;
    color: #374151;
}

.wp-block-woocommerce-accordion-group .wp-block-woocommerce-accordion-item:first-of-type .wc-block-product-description {
    margin-bottom: 1.5rem;
}

th.wp-block-product-specifications-item__label {
    white-space: nowrap;
}

/* ---------- Related Products ---------- */

.ct-related-products.wp-block-woocommerce-product-collection {
    /* margin-top: 2rem;
    padding-top: 2rem;
    border-top: 1px solid #e5e7eb; */
}

.ct-related-products__heading.wp-block-heading {
}

.ct-related-products .woocommerce-loop-product__title,
.ct-related-products .wp-block-post-title {
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 500;
}

.ct-related-products .wp-block-post-title a {
    text-decoration: none;
}

.ct-related-products .wp-block-post-title a:hover {
    color: #c22e00;
}

.ct-related-products .ct-product-card__cat.wp-block-post-terms {
    font-weight: 400;
    color: #6B7280;
}

.ct-related-products .ct-product-card__cat.wp-block-post-terms a {
    color: #6b7280;
    text-decoration: none;
}

.ct-related-products .woocommerce-Price-amount {
    color: #6B7280;
    text-decoration: none;
}

.ct-related-products .wc-block-grid__product-image img,
.ct-related-products .woocommerce-product-gallery__image img {
    /* border: 1px solid #e5e7eb;
    border-radius: 3px;
    width: 100%;
    height: auto; */
}

/* ---------- Lightbox ---------- */
.single-product .pswp {
    z-index: 9999;
}

/* ---------- Responsive ---------- */

/* Mobile */
@media (width <= 767px) {
    .single-product main.ct-product-single {
        margin: 1rem 0 3rem;
        padding: 0 1rem;
    }

    .ct-product-single {
        padding: 1rem 1rem 3rem;
    }

    .ct-product-columns.wp-block-columns {
        flex-direction: column;
        gap: 1.5rem;
    }

    /* Product Gallery */

    .ct-product-gallery-col .woocommerce-product-gallery {
        flex-direction: column;
        gap: 0.5rem;
    }

    .ct-product-gallery-col .flex-control-thumbs {
        flex-direction: row;
        flex: none;
        flex-wrap: wrap;
        gap: 0.5rem;
    }

    .woocommerce div.product div.ct-product-gallery-col div.images .flex-control-thumbs li {
        width: calc(20% - 0.4rem);
    }

    .ct-product-gallery-col .flex-control-thumbs img {
        /* width: 56px !important;
        height: 56px !important;
        max-width: 56px !important;
        max-height: 56px !important; */
    }

    /* Product Info */
    .ct-product-category.wp-block-post-terms {
        font-size: 0.75rem;
        margin-bottom: 0.5rem;
    }

    .ct-product-title.wp-block-post-title {
        font-size: 1.125rem;
        line-height: 1.5rem;
        margin: 0 0 0.5rem;
    }

    .single-product .wc-block-components-product-price {
        font-size: 1rem;
        line-height: 1.5rem;
        margin-bottom: 1rem;
    }

    .single-product .ct-product-info-col .variations th.label label {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .woocommerce div.product form.cart .variations tbody {
        gap: 1rem;
    }

    /* Related Products */
    .wp-block-woocommerce-product-collection h2.ct-related-products__heading.wp-block-heading {
        font-size: 1.5rem;
        line-height: 2rem;
        margin-bottom: 1.5rem;
    }

    .ct-related-products .wp-block-woocommerce-product-template {
        gap: 2rem 1rem;
        grid-template-columns: repeat(2, 1fr) !important;
    }

    .ct-related-products .ct-product-card__cat.wp-block-post-terms {
        margin-bottom: 0.25rem;
    }

    .single-product .ct-related-products .wp-block-post-title {
        font-size: 0.875rem !important;
        line-height: 1.25rem;
        margin-bottom: 0.25rem;
    }

    .single-product .ct-related-products .wc-block-components-product-price {
        font-size: 0.75rem;
        line-height: 1.25rem;
        margin-bottom: 0;
    }
}

/* Tablet */
@media (768px <= width <= 960px) {
    .single-product main.ct-product-single {
        margin: 2.5rem 0 5rem;
        padding: 0 2.5rem;
    }

    .ct-product-columns.wp-block-columns {
        flex-direction: column;
        gap: 2.5rem;
        margin-bottom: 5rem;
    }

    /* Product Gallery */

    .ct-product-gallery-col .woocommerce-product-gallery {
        flex-direction: column;
        gap: 0.5rem;
    }

    .ct-product-gallery-col .flex-control-thumbs {
        flex-direction: row;
        flex: none;
        flex-wrap: wrap;
        gap: 0.375rem;
    }

    .woocommerce div.product div.ct-product-gallery-col div.images .flex-control-thumbs li {
        width: calc(16.666% - 0.333rem);
    }

    .ct-product-gallery-col .flex-control-thumbs img {
        /* width: 60px !important;
        height: 60px !important;
        max-width: 60px !important;
        max-height: 60px !important; */
    }

    .product-type-simple.single-product.woocommerce div.product div.images {
        margin-bottom: 5rem;
    }

    /* Product Info */
    

    /* Related Products */
    .ct-related-products .wp-block-woocommerce-product-template {
        gap: 4rem 1.5rem;
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (width >= 768px) {
    .woocommerce .wp-block-woocommerce-product-image-gallery {
        max-width: none;
    }

    /* Product Info */
    .ct-product-category.wp-block-post-terms {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 1rem;
    }

    .ct-product-title.wp-block-post-title {
        font-size: 1.5rem;
        line-height: 1.75rem;
        margin: 0 0 1rem;
    }

    .single-product .wc-block-components-product-price {
        font-size: 1.125rem;
        line-height: 1.75rem;
        margin-bottom: 1.5rem;
    }

    /* Related Products */
    .wp-block-woocommerce-product-collection h2.ct-related-products__heading.wp-block-heading {
        font-size: 2rem;
        line-height: 2.25rem;
        margin-bottom: 3rem;
    }

    .ct-related-products .ct-product-card__cat.wp-block-post-terms {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 0.25rem;
    }

    .single-product .ct-related-products .wp-block-post-title {
        font-size: 1rem !important;
        line-height: 1.5rem;
        margin-bottom: 0.25rem;
    }

    .single-product .ct-related-products .wc-block-components-product-price {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 0;
    }
}

/* Desktop */
@media (width > 960px) {
    /* Layout */
    .ct-product-columns.wp-block-columns .wp-block-column.ct-product-gallery-col {
        flex-basis: 60% !important;
    }

    .ct-product-columns.wp-block-columns .wp-block-column.ct-product-info-col {
        flex-basis: 40% !important;
    }

    /* Product Gallery */
    .woocommerce div.product div.ct-product-gallery-col div.images .flex-control-thumbs li {
        width: 100%;
    }

    /* Product Info */

    .woocommerce div.product form.cart .variations tbody {
        gap: 1rem;
    }

    .ct-product-info-col .single_add_to_cart_button {
        min-width: 180px;
    }

    /* Price */
    .single-product .wc-block-components-product-price {
        margin-bottom: 1rem;
    }

    /* Add to Cart button */
    .ct-product-info-col .single_add_to_cart_button, 
    .ct-product-info-col button[name="add-to-cart"], 
    .ct-product-info-col .woocommerce-variation-add-to-cart .single_add_to_cart_button, 
    .ct-product-info-col .single_add_to_cart_button.button.alt {
        font-size: 0.875rem;
    }

    /* Related Products */
    .ct-related-products .wp-block-woocommerce-product-template {
        gap: 4rem 2.5rem;
        grid-template-columns: repeat(4, 1fr) !important;
    }
}


/*************************************************
 * WooCommerce Cart
 *************************************************/

/* ---------- Page Layout ---------- */
.woocommerce-cart main {
    margin: 3rem auto 5rem;
    max-width: 1280px;
    padding: 0 2.5rem;
}

.wc-block-components-button, 
.wc-block-components-button:not(.is-link) {
    background-color: #E82A00;
    border: 2px solid #E82A00;
    border-radius: 6px;
    color: white;
    padding: 0.75rem;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25rem;
}

/* ---------- Responsive ---------- */

/* Mobile */
@media (width <= 767px) {
    .woocommerce-cart main {
        margin: 1rem 0 3rem;
        padding: 0 1rem;
    }

}

/* Tablet */
@media (768px <= width <= 960px) {
    .woocommerce-cart main {
        margin: 2.5rem 0 5rem;
        padding: 0 2.5rem;
    }

}

@media (width >= 768px) {

}

/* Desktop */
@media (width > 960px) {

}


/*************************************************
 * WooCommerce Checkout
 *************************************************/

/* ---------- Page Layout ---------- */
.woocommerce-checkout main {
    margin: 3rem auto 5rem;
    max-width: 1280px;
    padding: 0 2.5rem;
}


/* ---------- Responsive ---------- */

/* Mobile */
@media (width <= 767px) {
    .woocommerce-checkout main {
        margin: 1rem 0 3rem;
        padding: 0 1rem;
    }

}

/* Tablet */
@media (768px <= width <= 960px) {
    .woocommerce-checkout main {
        margin: 2.5rem 0 5rem;
        padding: 0 2.5rem;
    }

}

@media (width >= 768px) {

}

/* Desktop */
@media (width > 960px) {

}


/*************************************************
 * WooCommerce Account
 *************************************************/

/* ---------- Page Layout ---------- */
body.page-template-sign-in:not(.member-logged-in) header,
body.page-template-sign-in:not(.member-logged-in) footer,
body.page-template-sign-in.member-logged-in .ct-login-heading,
body.page-template-sign-in:not(.member-logged-in) h2.ct-member-login-h2,
body.page-template-sign-in.member-logged-in h2.ct-login-h2,
body.page-template-sign-in.member-logged-in .ct-login-return,
.woocommerce-account .woocommerce-MyAccount-navigation li a br,
.woocommerce-account .woocommerce-MyAccount-navigation li.woocommerce-MyAccount-navigation-link--members-area {
    display: none;
}

body.page-template-sign-in.member-logged-in .ct-login-card {
    margin: 3rem auto 5rem;
    max-width: 1280px;
    padding: 0 2.5rem;
}

body.page-template-sign-in.member-logged-in .ct-login-card h2.ct-member-login-h2 {
    text-align: left;
}

.woocommerce-account .woocommerce-MyAccount-navigation li {
    border-bottom: 1px solid #D1D5DB;
    display: block;
}

.woocommerce-account .woocommerce-MyAccount-navigation li.is-active a {
    text-decoration: none;
    color: #E82A00;
    font-weight: 600;
}

body.woocommerce-account .woocommerce-MyAccount-navigation {
    width: calc(30% - 1.5rem);
}

body.woocommerce-account .woocommerce-MyAccount-content {
    width: calc(70% - 1.5rem);
}

/* ---------- Responsive ---------- */

/* Mobile */
@media (width <= 767px) {

}

/* Tablet */
@media (768px <= width <= 960px) {

}

@media (width >= 768px) {

}

/* Desktop */
@media (width > 960px) {

}


/*************************************************
 * WooCommerce Thank You Page
 *************************************************/

/* ---------- Page Layout ---------- */
.woocommerce-order-received main {
    margin: 5rem auto;
    max-width: 803px;
    padding: 0 2.5rem;
}

.woocommerce-order-received .wp-block-woocommerce-order-confirmation-status p, 
.woocommerce-order-received .wc-block-order-confirmation-status p {
    font-family: 'Merriweather', serif;
    font-size: 2rem;
    line-height: 2.25rem;
    margin-bottom: 1.5rem;
}

.woocommerce-order-received a.button,
.wp-block-woocommerce-order-confirmation-additional-information a {
    text-decoration: underline;
    color: #E82A00;
}

/* ---------- Responsive ---------- */

/* Mobile */
@media (width <= 767px) {
    .woocommerce-order-received main {
        margin: 3rem 0;
        padding: 0 1rem;
    }

    .woocommerce-order-received .wp-block-woocommerce-order-confirmation-status p, 
    .woocommerce-order-received .wc-block-order-confirmation-status p {
        font-size: 1.5rem;
        line-height: 1.75rem;
    }

}

/* Tablet */
@media (768px <= width <= 960px) {
    .woocommerce-order-received main {
        margin: 2.5rem 0 5rem;
        padding: 0 2.5rem;
    }

}

@media (width >= 768px) {

}

/* Desktop */
@media (width > 960px) {

}


/* Blog Archive */
.template-blog-archive {
    margin-inline: auto;
    max-width: 1280px;
}

.template-blog-archive .wp-block-post {
    border-bottom: 1px solid #D1D5DB;
}

.template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-date {
    color: #6B7280;
}

.template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-excerpt {
    font-size: 1rem;
    line-height: 1.5rem;
    margin-bottom: 0.5rem;
}

.template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-author-name {
    font-style: italic;
    position: relative;
}

.template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-author-name::before {
    content: 'By ';
}

nav.wp-block-query-pagination {
    flex-wrap: nowrap;
    justify-content: space-between;
}

nav.wp-block-query-pagination > a,
nav.wp-block-query-pagination > span.is-disabled {
    border: 1px solid #231F20;
    border-radius: 6px;
    font-size: 0.875rem;
    line-height: 1.25rem;
    font-weight: 700;
}

nav.wp-block-query-pagination > span.is-disabled {
    opacity: 0.4;
}

nav.wp-block-query-pagination .page-numbers {
    padding: 0.75rem;
    white-space: nowrap;
}

nav.wp-block-query-pagination .page-numbers.current {
    font-weight: 700;
}

nav.wp-block-query-pagination .wp-block-query-pagination-numbers {
    display: flex;
    flex: 1;
    justify-content: space-between;
}

/* Mobile */
@media (width <= 767px) {
    .template-blog-archive,
    .template-blog-archive.has-global-padding {
        margin-top: 1.5rem;
        margin-bottom: 3rem;
        padding: 0 1rem;
    }

    .template-blog-archive .wp-block-columns {
        gap: 3rem;
        margin-bottom: 3rem;
    }

    .template-blog-archive h1.wp-block-query-title {
        font-size: 1.75rem;
        line-height: 2rem;
        margin-bottom: 1.5rem;
    }

    .template-blog-archive .wp-block-post {
        margin-bottom: 1.5rem;
        padding-bottom: 1.5rem;
    }

    .template-blog-archive .wp-block-post > .wp-block-group {
        flex-direction: column;
        align-items: flex-start;
    }

    .template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-date {
        font-size: 0.75rem;
        line-height: 1.25rem;
        margin-bottom: 1rem;
    }

    .template-blog-archive .wp-block-post > .wp-block-group h2.wp-block-post-title {
        font-size: 1.125rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }

    .template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-author-name {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }

    nav.wp-block-query-pagination {
        gap: 1rem;
        margin-top: 2rem;
    }

    nav.wp-block-query-pagination > a,
    nav.wp-block-query-pagination > span.is-disabled {
        padding: 0.75rem 0.5rem;
        white-space: nowrap;
    }

    nav.wp-block-query-pagination > a.wp-block-query-pagination-next {
        margin-left: 0.375rem;
    }

    nav.wp-block-query-pagination > a.wp-block-query-pagination-previous {
        margin-right: 0.375rem;
    }

    nav.wp-block-query-pagination .page-numbers {
        padding: 0.5rem;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .template-blog-archive .wp-block-columns {
        gap: 3rem;
        margin-bottom: 5rem;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .template-blog-archive {
        margin-top: 3rem;
        margin-bottom: 5rem;
        padding: 0 2.5rem;
    }

    .template-blog-single .template-blog-archive {
        padding: 0;
    }

    .template-blog-archive.has-global-padding {
        padding: 0 2.5rem;
    }

    .template-blog-archive {
        margin-top: 3rem;
        margin-bottom: 5rem;
    }

    .template-blog-archive .wp-block-post {
        margin-bottom: 2rem;
        padding-bottom: 2rem;
    }

    .template-blog-archive .wp-block-post > .wp-block-group {
        align-items: flex-start;
        gap: 3rem;
    }

    .template-blog-archive .wp-block-post > .wp-block-group h2.wp-block-post-title {
        font-size: 1.5rem;
        line-height: 1.75rem;
        margin-bottom: 1rem;
    }

    .template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-date {
        font-size: 0.875rem;
        line-height: 1.25rem;
        min-width: 100px;
    }

    .template-blog-archive h1.wp-block-query-title {
        font-size: 2.75rem;
        line-height: 3.25rem;
        margin-bottom: 2.5rem;
    }

    .template-blog-archive .wp-block-post > .wp-block-group .wp-block-post-author-name {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    nav.wp-block-query-pagination {
        gap: 3.5rem;
        margin-top: 4rem;
    }

    nav.wp-block-query-pagination > a,
    nav.wp-block-query-pagination > span.is-disabled {
        padding: 0.75rem 1.5rem;
    }

    .ct-page-1 nav.wp-block-query-pagination {
        justify-content: flex-start;
    }

    nav.wp-block-query-pagination .wp-block-query-pagination-numbers {
        display: flex;
        flex: 1;
        justify-content: space-between;
    }

    .ct-page-1 nav.wp-block-query-pagination .wp-block-query-pagination-numbers {
        /* gap: 4rem !important;
        flex: unset; */
    }
    
}

/* Desktop */
@media (width > 960px) {
    .template-blog-archive .wp-block-columns {
        gap: 6.5rem;
        margin-bottom: 3rem;
    }

    nav.wp-block-query-pagination {
        gap: 3.5rem;
        justify-content: space-between;
    }
}

/* Blog Single */
.template-blog-single {
    margin-inline: auto;
    max-width: 1280px;
}

.template-blog-single .wp-block-group .wp-block-group {
    width: 100%;
}

.template-blog-single .wp-block-post-date {
    color: #6B7280;
}

.template-blog-single .blog-single-heading .wp-block-post-author-name, 
.template-blog-single .blog-single-heading .wp-block-post-date {
    font-style: italic;
    position: relative;
}

.template-blog-single .wp-block-post-author-name + .wp-block-post-date::before {
    content: ' / ';
    margin-left: 0.25rem;
}

.template-blog-single .wp-block-post-author-name::before {
    content: 'By ';
}

.template-blog-single .blog-single-heading hr.wp-block-separator {
    border-color: #D1D5DB;
}

.template-blog-single .entry-content > p:not(:last-of-type) {
    margin-bottom: 1.5rem;
}

/* Mobile */
@media (width <= 767px) {
    .template-blog-single {
        margin-top: 1.5rem;
        margin-bottom: 3rem;
        padding: 0 1rem;
    }

    .template-blog-single h2.wp-block-post-title {
        font-size: 1.5rem;
        line-height: 1.75rem;
        margin-bottom: 0.5rem;
    }

    .template-blog-single .wp-block-columns {
        gap: 3rem;
        margin-bottom: 3rem;
    }

    .template-blog-single .wp-block-post-author-name, .template-blog-single .wp-block-post-date {
        font-size: 0.75rem;
        line-height: 1.25rem;
        margin-bottom: 1rem;
    }

    .template-blog-single .blog-single-heading hr.wp-block-separator {
        margin-bottom: 1.5rem;
    }
    
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .template-blog-single .wp-block-columns {
        gap: 3rem;
        margin-bottom: 5rem;
    }

    .template-blog-single .wp-block-post-author-name, .template-blog-single .wp-block-post-date {
        margin-bottom: 1rem;
    }
    
}

/* Tablet and up */
@media (width >= 768px) {
    .template-blog-single {
        margin-top: 3rem;
        margin-bottom: 5rem;
        padding: 0 2.5rem;
    }

    .template-blog-single h2.wp-block-post-title {
        font-size: 2rem;
        line-height: 2.25rem;
        margin-bottom: 1rem;
    }

    .template-blog-single .blog-single-heading .wp-block-post-author-name, 
    .template-blog-single .blog-single-heading .wp-block-post-date {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .template-blog-single .blog-single-heading hr.wp-block-separator {
        margin-bottom: 3rem;
    }
    
}

/* Desktop */
@media (width > 960px) {
    .template-blog-single .wp-block-columns {
        gap: 6.5rem;
        margin-bottom: 3rem;
    }

    .template-blog-single .blog-single-heading .wp-block-post-author-name, 
    .template-blog-single .blog-single-heading .wp-block-post-date {
        margin-bottom: 2.5rem;
    }
    
}

/* Reviews Archive */


/* Mobile */
@media (width <= 767px) {
    
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    
}

/* Tablet and up */
@media (width >= 768px) {
    
}

/* Desktop */
@media (width > 960px) {
    
}

/* Reviews Single */
.template-review-single {
    margin-inline: auto;
    max-width: 1280px;
}

.template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-group figure.wp-block-image a {
    display: flex;
    max-width: 56px;
}

.template-review-single .review-composers a {
    text-decoration: underline;
}

.template-review-single .review-ratings .pill,
.template-review-single .review-ratings.review-ratings--locked {
    background-color: #E5E5D8;
    border-radius: 999px;
}

.template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-author {
    align-items: center;
}

.template-review-single .wp-block-post-author__avatar {
    border-radius: 50%;
    margin-right: 0.5rem;
    height: 38px;
    width: 38px;
}

.template-review-single .wp-block-post-author__avatar:empty {
    background-color: #E5E5D8;
}

.template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-author__name, 
.template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-date {
    font-style: italic;
    position: relative;
}

.template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-date {
    color: #6B7280;
}

.template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-author__name::before {
    content: 'By ';
}

.template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-date::before {
    content: ' / ';
    margin-left: 0.25rem;
}

.template-review-single .wp-block-group.is-section-reviews-grid,
.single-video .wp-block-group.is-section-video-grid {
    padding: 0;
}

.template-review-single .wp-block-group.is-section-reviews-grid.template-blog-archive .wp-block-post {
    border-bottom: none;
    padding-bottom: 0;
}

.template-review-single .review-audio {
    margin-top: 3rem;
}

.template-review-single .review-audio .review-audio__label {
    font-weight: 500;
    margin-bottom: 0.5rem;
}

.template-review-single .review-audio audio {
    width: 100%;
}

.review-recording-details > h3 {
    margin: 0 0 1.5rem;
}

.review-recording-details li.review-recording-details__composer {
    margin-bottom: 1rem;
}

.review-recording-details a {
    text-decoration: underline;
}

.template-review-single .wp-block-columns:not(:first-of-type) .wp-block-column p {
    margin-bottom: 1.5rem;
}

.access-restricted .template-review-single .wp-block-column > p:last-of-type {
    position: relative;
    overflow: hidden;
}

.access-restricted .template-review-single .wp-block-column > p:last-of-type::after {
    content: '';
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    height: 120px; /* adjust to taste */
    background: linear-gradient(to bottom, transparent, #fff);
    z-index: 999;
    pointer-events: none;
}

.unlock-cta__inner, 
p.unlock-cta__text {
    text-align: center;
}

.unlock-cta__inner {
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    background-color: #F3F4F6;
}

.unlock-cta__buttons {
    display: flex;
    justify-content: center;
}

.unlock-cta__btn {
    border: 2px solid #E82A00;
    border-radius: 6px;
    font-weight: 700;
    min-width: 122px;
    padding: 0.75rem;
}

.unlock-cta__btn.unlock-cta__btn--primary {
    background-color: #E82A00;
    color: #FFF;
}

.unlock-cta__btn.unlock-cta__btn--secondary {
    color: #E82A00;
}

/* Mobile */
@media (width <= 767px) {
    .template-review-single {
        margin-top: 1.5rem;
        margin-bottom: 3rem;
        padding: 0 1rem;
    }

    .template-review-single figure.wp-block-post-featured-image {
        margin-bottom: 1rem;
    }

    .template-review-single .review-single-heading .wp-block-column:last-of-type > .wp-block-group {
        gap: 0.5rem;
        margin-bottom: 1rem;
    }

    .template-review-single .review-composers a {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .template-review-single .review-ratings .pill,
    .template-review-single .review-ratings.review-ratings--locked {
        font-size: 0.75rem;
        line-height: 1.25rem;
        padding: 0.25rem 0.75rem;
    }

    .template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-author__name, 
    .template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-date {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }

    .template-review-single .review-single-heading hr {
        margin-bottom: 1.5rem;
    }

    .template-review-single .review-audio .review-audio__label {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .review-recording-details > h3 {
        font-size: 1.125rem;
        line-height: 1.5rem;
    }

    .review-recording-details ul {
        margin-bottom: 3rem;
    }

    .unlock-cta {
        margin: 1.5rem 0 3rem !important;
    }

    .unlock-cta__inner {
        padding: 1.5rem 1rem;
    }

    .unlock-cta__buttons {
        gap: 1rem;
    }

    .unlock-cta__btn {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .template-review-single .review-single-heading hr {
        margin-bottom: 2.5rem;
    }

    .template-review-single .review-single-heading .wp-block-columns {
        gap: 1.5rem;
    }

    .template-review-single .review-single-heading .wp-block-columns .wp-block-column:first-of-type {
        flex-basis: 120px !important;
    }

    .review-recording-details ul {
        margin-bottom: 5rem;
    }
    
}

/* Tablet and up */
@media (width >= 768px) {
    .template-review-single {
        margin-top: 3rem;
        margin-bottom: 5rem;
        padding: 0 2.5rem;
    }

    .template-review-single .review-composers a {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .template-review-single .review-ratings .pill, 
    .template-review-single .review-ratings.review-ratings--locked {
        font-size: 0.875rem;
        line-height: 1.25rem;
        padding: 0.5rem 1rem;
    }

    .template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-author__name, 
    .template-review-single .review-single-heading .wp-block-column:last-of-type .wp-block-post-date {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .template-review-single .review-single-heading hr {
        margin-bottom: 3rem;
    }

    .template-review-single .review-audio .review-audio__label {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    .review-recording-details > h3 {
        font-size: 1.5rem;
        line-height: 1.75rem;
    }

    .template-review-single .review-single-heading .wp-block-columns {
        flex-wrap: nowrap !important;
        margin-bottom: 2.5rem;
    }

    .template-review-single .review-single-heading .wp-block-column:last-of-type > .wp-block-group {
        gap: 1rem;
    }

    .template-review-single h2.wp-block-post-title {
        font-size: 2rem;
        line-height: 2.25rem;
    }

    .template-review-single .review-single-heading, .template-review-single .review-single-heading .wp-block-columns, .template-review-single .review-single-heading hr {
        width: 100%;
        margin-left: 0 !important;
        margin-right: 0 !important;
        max-width: none;
    }

    .unlock-cta {
        margin: 2.5rem 0 3rem !important;
    }

    .unlock-cta__inner {
        padding: 2.5rem 5rem;
    }

    .unlock-cta__buttons {
        gap: 1.5rem;
    }

    .unlock-cta__btn {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }
}

/* Desktop */
@media (width > 960px) {
    .template-review-single .review-single-heading .wp-block-columns {
        gap: 3rem;
    }

    .template-review-single .review-single-heading .wp-block-columns .wp-block-column:first-of-type {
        flex-basis: 300px !important;
    }

    .template-review-single .review-single-heading + .wp-block-columns {
        column-gap: 6.5rem;
    }

    .review-recording-details ul {
        margin-bottom: 2.5rem;
    }
    
}

/* Search Results Page */

/* ---------- Page Layout ---------- */

.template-search-results {
    margin-inline: auto;
    max-width: 1280px;
}

.ct-search-layout {
    display: flex;
    align-items: flex-start;
    gap: 2.5rem;
    max-width: 1280px;
    margin: 2.5rem auto;
    padding: 0 2.5rem;
}

.template-search-results h1.wp-block-query-title {
    text-transform: capitalize;
}

.ct-search-sidebar {
    flex: 0 0 260px;
    width: 260px;
}

.ct-search-results-col {
    flex: 1 1 auto;
    min-width: 0;
}

/* ---------- Filter Sidebar ---------- */

.ct-search-filters {
    font-size: 0.875rem;
    color: #111827;
}

.ct-search-filters__header {
    margin-bottom: 1.5rem;
}

.ct-search-filters__title {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 1.125rem;
    font-weight: 700;
    margin: 0;
    line-height: 1.75rem;
}

.ct-filter-section {
    margin-bottom: 1.25rem;
}

.ct-filter-section__heading {
    font-family: 'Nunito Sans', sans-serif;
    font-size: 0.875rem;
    font-weight: 700;
    line-height: 1.25rem;
    margin: 0 0 1.25rem;
}

.ct-filter-field {
    position: relative;
    margin-bottom: 0.75rem;
}

.ct-filter-field.ct-filter-field--slider {
    margin: 1.5rem 0 0.75rem;
}

.ct-filter-field input[type="text"],
.ct-filter-select {
    width: 100%;
    padding: 0.5rem 0.75rem;
    border: 1px solid #d1d5db;
    border-radius: 4px;
    font-family: 'Nunito Sans', sans-serif;
    font-size: 0.875rem;
    color: #6B7280;
    background: #fff;
    box-sizing: border-box;
    appearance: none;
}

.ct-filter-field input[type="text"]:focus,
.ct-filter-select:focus {
    outline: none;
    border-color: #c22e00;
    box-shadow: 0 0 0 2px rgb(194 46 0 / 12%);
}

.ct-filter-select {
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='12' height='8' viewBox='0 0 12 8'%3E%3Cpath fill='%236b7280' d='M1.41 0L6 4.58 10.59 0 12 1.41l-6 6-6-6z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 0.75rem center;
    padding-right: 2rem;
}

body:not(.member-logged-in) .ct-filter-section:not(:first-of-type), 
body:not(.member-logged-in) .ct-filter-section:not(:first-of-type) .ct-filter-field {
    display: none;
}

/* Autocomplete dropdown */

.ct-autocomplete-dropdown {
    position: absolute;
    top: 100%;
    left: 0;
    right: 0;
    z-index: 100;
    background: #fff;
    border: 1px solid #d1d5db;
    border-top: none;
    border-radius: 0 0 4px 4px;
    list-style: none;
    margin: 0;
    padding: 0;
    max-height: 200px;
    overflow-y: auto;
    box-shadow: 0 4px 8px rgb(0 0 0 / 8%);
}

.ct-autocomplete-dropdown[hidden] {
    display: none;
}

.ct-autocomplete-dropdown li {
    padding: 0.5rem 0.75rem;
    font-size: 0.875rem;
    cursor: pointer;
    color: #111827;
}

.ct-autocomplete-dropdown li:hover,
.ct-autocomplete-dropdown li.is-active {
    background: #fceeec;
    color: #c22e00;
}

/* Sliders */

.ct-slider-label {
    display: flex;
    align-items: center;
    font-size: 0.875rem;
    margin-bottom: 0.5rem;
    gap: 0.25rem;
}

.ct-slider-value {
}

.ct-filter-slider {
    width: 100%;
    accent-color: #231F20;
    cursor: pointer;
}

/* Insider checkbox */

.ct-filter-field--checkbox {
    margin-top: 0.25rem;
}

.ct-filter-checkbox-label {
    display: flex;
    align-items: center;
    gap: 0.5rem;
    font-size: 0.875rem;
    cursor: pointer;
}

.ct-filter-checkbox-label input[type="checkbox"] {
    width: 15px;
    height: 15px;
    accent-color: #c22e00;
    cursor: pointer;
    flex-shrink: 0;
}

/* Actions */

.ct-filter-actions {
    display: flex;
    flex-direction: column;
    align-items: center;
    gap: 0.75rem;
    margin-top: 1.25rem;
}

.ct-search-filters__submit {
    background: #E82A00;
    border: none;
    border-radius: 6px;
    color: #fff;
    cursor: pointer;
    display: block;
    font-family: 'Nunito Sans', sans-serif;
    font-size: 0.875rem;
    font-weight: 600;
    line-height: 1.25rem;
    padding: 0.75rem;
    width: 100%;
}

.ct-search-filters__clear {
    font-size: 0.825rem;
    color: #6b7280;
    cursor: pointer;
}

.ct-search-filters__clear:hover {
    color: #E82A00;
}

/* ---------- Results Bar ---------- */

div.ct-results-bar {
    display: flex;
    align-items: center;
    justify-content: space-between;
    gap: 1rem;
    margin-bottom: 1rem !important;
}

p.ct-results-bar__count {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.25rem;
}

.ct-results-bar__count strong {
    color: #111827;
    font-weight: 700;
}

.ct-results-bar__count em {
    font-style: italic;
    color: #111827;
}

.ct-view-toggle {
    display: flex;
    flex-shrink: 0;
}

.ct-view-toggle__btn {
    background: #fff;
    border: 1px solid #231F20;
    cursor: pointer;
    display: inline-flex;
    align-items: center;
    gap: 0.25rem;
    font-family: 'Nunito Sans', sans-serif;
    font-size: 0.75rem;
    font-weight: 700;
    line-height: 1.25rem;
    padding: 0.5rem 0.75rem;
    transition: color 0.18s ease, border-color 0.18s ease, background 0.18s ease;
}

.ct-view-toggle__btn:first-of-type {
    border-radius: 8px 0 0 8px;
}

.ct-view-toggle__btn:last-of-type {
    border-radius: 0 8px 8px 0;
}

.ct-view-toggle__btn:hover,
.ct-view-toggle__btn.is-active {
    color: #FFF;
    background: #231F20;
}

/* ---------- Search Result Card (List View) ---------- */

.ct-search-card {
    display: flex;
    gap: 1rem;
    padding: 1.5rem 0;
    border-bottom: 1px solid #e5e7eb;
    align-items: flex-start;
}

.ct-card__thumbnail {
    flex-shrink: 0;
    width: 96px;
}

.ct-card__thumbnail a {
    display: block;
    text-decoration: none;
}

.ct-card__img { 
    aspect-ratio: 1 / 1;
    display: block;
    height: auto;
    object-fit: cover;
    width: 100%;
}

.ct-card__img-placeholder {
    display: block;
    width: 100%;
    background: #f3f4f6;
    border-radius: 3px;
}

.ct-card__body {
    flex: 1;
    min-width: 0;
    display: flex;
    flex-direction: column;
    gap: 0.25rem;
}

.ct-card__title {
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 500;
    margin: 0 0 0.25rem;
}

.ct-card__title a {
    color: #111827;
    text-decoration: none;
}

.ct-card__title a:hover {
    color: #c22e00;
    text-decoration: underline;
}

p.ct-card__meta {
    margin: 0 0 0.25rem;
    text-decoration: underline;
}

p.ct-card__meta--secondary {
    margin: 0 0 0.5rem;
}

p.ct-card__meta--secondary a {
    color: #6B7280;
}

.ct-card__excerpt {
    margin: 0;
    font-size: 0.875rem;
    line-height: 1.25rem;
    color: #374151;
    display: -webkit-box;
    -webkit-line-clamp: 3;
    -webkit-box-orient: vertical;
    overflow: hidden;
}

.ct-card__ratings {
    display: flex;
    flex-wrap: wrap;
    gap: 0.5rem;
    margin-top: 2px;
}

.ct-card__rating {
    background-color: #E5E5D8;
    border-radius: 999px;
    font-size: 0.75rem;
    line-height: 1rem;
    padding: 0.25rem 0.5rem;
}

.ct-card__rating strong {
    font-weight: 700;
}

.ct-card__ratings--locked .ct-card__rating-lock {
    /* display: flex;
    align-items: center;
    gap: 5px;
    font-size: 0.75rem;
    color: #6b7280;
    font-style: italic; */
}

.ct-card__read-more {
    display: inline-flex;
    align-items: center;
    gap: 5px;
    margin-top: 0.25rem;
    font-size: 0.75rem;
    font-weight: 700;
    text-transform: uppercase;
    letter-spacing: 0.06em;
    color: #c22e00;
    text-decoration: none;
}

.ct-card__read-more:hover {
    color: #9c2c00;
    text-decoration: underline;
}

/* ---------- Search Result Card (Grid View) ---------- */

body.ct-view-grid .wp-block-post-template {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 2.5rem 1rem !important;
    list-style: none;
    padding: 0;
    margin: 0;
}

body.ct-view-grid .wp-block-post {
    list-style: none;
}

body.ct-view-grid .ct-search-card {
    flex-direction: column;
    gap: 0.5rem;
    padding: 0;
    border-bottom: none;
    overflow: hidden;
    height: 100%;
}

body.ct-view-grid .ct-card__thumbnail {
    width: 100%;
}

body.ct-view-grid .ct-card__img,
body.ct-view-grid .ct-card__img-placeholder {
    width: 100%;
    border-radius: 0;
}

body.ct-view-grid .ct-card__body {
}

body.ct-view-grid .ct-card__excerpt {
    -webkit-line-clamp: 2;
}

/* ---------- Ad Banners ---------- */

.ct-search-banner {
    display: block;
    width: 100%;
    margin: 1.5rem 0;
    line-height: 0;
}

.ct-search-banner__link {
    display: block;
}

.ct-search-banner {
    display: flex;
    justify-content: center;
}

.ct-search-banner__img {
    display: block;
    height: auto;
    border-radius: 4px;
}

.ct-search-banner--placeholder {
    display: flex;
    align-items: center;
    justify-content: center;
    min-height: 80px;
    border: 2px dashed #d1d5db;
    border-radius: 4px;
    background: #f3f4f6;
    font-size: 0.875rem;
    color: #6b7280;
}

/* ---------- Query Loop Overrides ---------- */

.wp-block-post-template {
    list-style: none !important;
    padding-left: 0 !important;
    margin: 0 !important;
}

.wp-block-query-no-results p {
    font-style: italic;
    color: #6b7280;
    padding: 2rem 0;
    margin: 0;
}

/* ---------- Pagination ---------- */

/* .wp-block-query-pagination {
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 0.25rem;
    margin-top: 2rem;
    flex-wrap: wrap;
}

.wp-block-query-pagination-numbers {
    display: flex;
    gap: 3px;
}

.wp-block-query-pagination-numbers a,
.wp-block-query-pagination-numbers span,
.wp-block-query-pagination-previous a,
.wp-block-query-pagination-next a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 36px;
    height: 36px;
    padding: 0 0.5rem;
    border: 1px solid #d1d5db;
    border-radius: 3px;
    font-size: 0.875rem;
    text-decoration: none;
    color: #111827;
}

.wp-block-query-pagination-numbers a:hover,
.wp-block-query-pagination-previous a:hover,
.wp-block-query-pagination-next a:hover {
    background: #c22e00;
    color: #fff;
    border-color: #c22e00;
    text-decoration: none;
}

.wp-block-query-pagination-numbers .current {
    color: #000;
    font-weight: 700;
} */

/* ---------- Mobile Filter Drawer ---------- */

.ct-mobile-filter-btn {
    display: none;
}

.ct-filter-drawer-close {
    display: flex;
    align-items: center;
    justify-content: flex-end;
    gap: 0.5rem;
    width: 100%;
    padding: 0.5rem 0 1rem;
    margin-bottom: 1rem;
    border: none;
    border-bottom: 1px solid #d1d5db;
    background: none;
    cursor: pointer;
    font-size: 0.875rem;
    font-weight: 700;
    color: #6b7280;
}

.ct-filter-drawer-close:hover {
    color: #c22e00;
}

/* Search View Transition */

.ct-search-card {
    transition: opacity 0.2s ease, transform 0.2s ease;
}

body.ct-view-switching .ct-search-card {
    opacity: 0;
    transform: scale(0.97);
}

/* Mobile */
@media (width <= 767px) {
    .template-search-results.has-global-padding {
        margin: 1.5rem 0 3rem;
        padding: 0 1rem;
    }

    .ct-search-layout {
        flex-direction: column;
        padding: 0 1rem;
        margin: 1.5rem auto;
        gap: 0;
    }

    .template-search-results h1.wp-block-query-title {
        font-size: 1rem;
        line-height: 1.5rem;
        margin: 1.5rem 0 1rem;
    }

    .ct-search-sidebar {
        width: 100%;
        flex: none;
    }

    .ct-search-filters {
        display: none;
    }

    .ct-search-filters.is-drawer-open {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 9999;
        background: #fff;
        overflow-y: auto;
        padding: 1rem;
        -webkit-overflow-scrolling: touch;
    }

    button.ct-mobile-filter-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        background-color: #FFF;
        border: 1px solid #231F20;
        border-radius: 8px;
        color: #231F20;
        cursor: pointer;
        font-size: 0.75rem;
        font-weight: 700;
        line-height: 1.25rem;
        padding: 0.5rem 0.75rem;
        margin-bottom: 1.5rem;
        width: 100%;
    }

    .ct-results-bar {
        flex-wrap: wrap;
    }

    body.ct-view-grid .wp-block-post-template {
        grid-template-columns: repeat(2, 1fr) !important;
    }

    body.ct-view-list .wp-block-post-template .ct-card__thumbnail, 
    body.ct-view-list .wp-block-post-template .ct-card__img {
        width: 80px;
        height: 80px;
    }

    body.ct-view-grid .ct-card__img,
    body.ct-view-grid .ct-card__img-placeholder {
        /* height: 136px; */
    }

    .ct-card__thumbnail {
        /* width: 72px;
    }

    .ct-card__img,
    .ct-card__img-placeholder {
        height: 72px; */
    }

    .ct-card__title {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    p.ct-card__meta {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }

    p.ct-card__meta--secondary {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .ct-search-layout {
        gap: 1.5rem;
        padding: 0 1.5rem;
    }

    .ct-view-list div.wp-block-columns.is-layout-flex {
        flex-wrap: wrap !important;
    }

    .ct-view-list .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column,
    .ct-view-list .wp-block-columns:not(.is-not-stacked-on-mobile)>.wp-block-column[style*="flex-basis"] {
        flex-basis: 100% !important;
    }

    .template-search-results h1.wp-block-query-title {
        font-size: 1.125rem;
        line-height: 1.5rem;
        margin: 2.5rem 0 1rem;
    }

    .ct-search-sidebar {
        flex: 0 0 220px;
        width: 220px;
    }

    div.ct-results-bar {
        margin-bottom: 0.5rem;
    }

    .ct-search-filters {
        display: none;
    }

    .ct-search-filters.is-drawer-open {
        display: block;
        position: fixed;
        inset: 0;
        z-index: 9999;
        background: #fff;
        overflow-y: auto;
        padding: 1rem;
        -webkit-overflow-scrolling: touch;
    }

    body.ct-view-grid .wp-block-post-template {
        gap: 5rem 1.5rem !important;
        grid-template-columns: repeat(2, 1fr) !important;
    }

    button.ct-mobile-filter-btn {
        display: inline-flex;
        align-items: center;
        justify-content: center;
        gap: 0.5rem;
        background-color: #FFF;
        border: 1px solid #231F20;
        border-radius: 8px;
        color: #231F20;
        cursor: pointer;
        font-size: 0.875rem;
        font-weight: 700;
        line-height: 1.25rem;
        padding: 0.5rem 0.75rem;
        margin-bottom: 1.5rem;
        width: 100%;
    }

    body.ct-view-grid .ct-card__img,
    body.ct-view-grid .ct-card__img-placeholder {
        /* height: 332px; */
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .template-search-results.has-global-padding {
        margin: 2.5rem auto 5rem;
        padding: 0 2.5rem;
    }

    .ct-filter-drawer-close {
        display: none;
    }

    .template-search-results > .wp-block-columns {
        gap: 2.5rem;
    }

    .template-search-results h1.wp-block-query-title {
        font-size: 1.125rem;
        line-height: 1.5rem;
        margin: 2.5rem 0 1rem;
    }

    body.ct-view-list .wp-block-post-template .ct-card__thumbnail, 
    body.ct-view-list .wp-block-post-template .ct-card__img {
        width: 120px;
        height: 120px;
    }

    .ct-search-layout {
        margin: 2.5rem auto;
    }

    .ct-card__title {
        font-size: 1rem;
        line-height: 1.5rem;
    }

    p.ct-card__meta {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    p.ct-card__meta--secondary {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }
}

/* Smaller than Desktop */
@media (width <= 960px) {
    .template-search-results > .wp-block-columns {
        flex-wrap: wrap !important;
    }

    .template-search-results > .wp-block-columns > .wp-block-column {
        flex-basis: 100% !important;
    }

}

/* Desktop */
@media (width > 960px) {
    body.ct-view-grid .wp-block-post-template {
        gap: 5rem 1.5rem !important;
        grid-template-columns: repeat(3, 1fr) !important;
    }

    body.ct-view-grid .ct-card__img,
    body.ct-view-grid .ct-card__img-placeholder {
        /* height: 270px; */
    }

    div.ct-results-bar {
        margin-bottom: 0.5rem;
    }
}


/* Composer Reviews Archive */
.template-review-archive {
    margin-inline: auto;
    max-width: 1280px;
}

.template-review-archive .composer-reviews__filters .composer-reviews__label {
    font-weight: 700;
    margin-bottom: 0.75rem;
}

.template-review-archive a.composer-reviews__pill {
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    font-weight: 700;
    display: inline-block;
    padding: 0.5rem 1rem;
}

form.composer-reviews__search {
    background: #F3F4F6;
    border-radius: 8px;
}

.composer-reviews__search-field {
    background: #FFF;
    border: 1px solid #D1D5DB;
    border-radius: 4px;
    display: flex;
    justify-content: space-between;
    position: relative;
}

.composer-reviews__search-field .composer-reviews__search-input {
    border: none;
    width: 100%;
}

input#composer-reviews-search {
    width: calc(100% - 2rem);
}

button.composer-reviews__search-icon {
    background: transparent;
    border: none;
    display: flex;
    align-items: center;
    padding: 0;
}

/* Remove default summary marker */
.composer-reviews__jump-summary::marker {
  display: none;
  content: "";
}

/* Safari / Chrome fallback */
.composer-reviews__jump-summary::-webkit-details-marker {
  display: none;
}

.composer-reviews__jump-summary {
    display: flex;
    justify-content: space-between;
}

.composer-reviews__jump-current {
    font-weight: 700;
}

.composer-reviews__jump-icon {
    position: relative;
    bottom: 0.125rem;
    margin-left: 0.5rem;
}

.composer-reviews__jump-grid .composer-reviews__jump-link {
    color: #E82A00;
    font-weight: 700;
}

/* Mobile */
@media (width <= 767px) {
    .template-review-archive {
        margin-top: 1.5rem;
        margin-bottom: 3rem;
        padding: 0 1rem;
    }

    .template-review-archive h2.wp-block-heading {
        font-size: 1.75rem;
        line-height: 2rem;
        margin-bottom: 1rem;
    }

    .template-review-archive h2.wp-block-heading + p {
        margin-bottom: 1rem;
    }

    .template-review-archive .composer-reviews__filters .composer-reviews__label {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }

    .template-review-archive a.composer-reviews__pill {
        font-size: 0.75rem;
        line-height: 1.25rem;
        margin: 0 0.75rem 0.75rem 0;
    }

    .template-review-archive a.composer-reviews__pill:last-of-type {
        margin-right: 0;
        margin-bottom: 1rem;
    }

    form.composer-reviews__search {
        padding: 1rem;
        margin-bottom: 1rem;
    }

    .composer-reviews__search-field {
        padding: 0.5rem 0.75rem;
    }

    .composer-reviews__az--desktop {
        display: none;
    }

    .composer-reviews__jump {
        margin-left: -1rem;
        margin-right: -1rem;
    }

    .composer-reviews__jump-summary {
        border-bottom: 1px solid #D1D5DB;
        padding: 0 1rem 1rem;
    }

    .composer-reviews__jump-panel {
        border-bottom: 1px solid #D1D5DB;
        padding-left: 1rem;
    }

    .composer-reviews__jump-grid {
        display: flex;
        flex-wrap: wrap;
        margin: 1rem 0 0.5rem;
    }

    .composer-reviews__jump-grid .composer-reviews__jump-link {
        margin: 0 1.75rem 0.75rem 0;
        min-width: calc((100% / 7) - 1.75rem);
    }

    .composer-reviews__item {
        margin-bottom: 0.75rem;
    }
    
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .template-review-archive h2.wp-block-heading + p {
        margin-bottom: 1rem;
    }

    form.composer-reviews__search {
        padding: 1rem 1.5rem;
        margin-bottom: 1rem;
    }   

    .composer-reviews__az--desktop {
        display: none;
    }

    .composer-reviews__jump {
        margin-left: -2.5rem;
        margin-right: -2.5rem;
    }

    .composer-reviews__jump-summary {
        border-bottom: 1px solid #D1D5DB;
        padding: 0 2.5rem 1rem;
    }

    .composer-reviews__jump-panel {
        border-bottom: 1px solid #D1D5DB;
        padding-left: 2.5rem;
    }

    .composer-reviews__jump-grid {
        display: flex;
        flex-wrap: wrap;
        margin: 1.5rem 0 0.5rem;
    }

    .composer-reviews__jump-grid .composer-reviews__jump-link {
        margin: 0 2.5rem 1.25rem 0;
        min-width: calc((100% / 13) - 2.75rem);
    }

    .composer-reviews__list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem 1.5rem;
    }

    .composer-reviews__list .composer-reviews__item {
        width: calc(50% - 0.75rem);
    }
    
}

/* Tablet and up */
@media (width >= 768px) {
    .template-review-archive {
        margin-top: 3rem;
        margin-bottom: 5rem;
        padding: 0 2.5rem;
    }

    .template-review-archive h2.wp-block-heading {
        font-size: 2.75rem;
        line-height: 3.25rem;
        margin-bottom: 1.5rem;
    }

    .template-review-archive a.composer-reviews__pill {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin: 0 0.5rem 0.75rem 0;
    }

    .template-review-archive a.composer-reviews__pill:last-of-type {
        margin-right: 0;
        margin-bottom: 1.5rem;
    }

    .composer-reviews__search-field {
        padding: 0.75rem 1rem;
    }

}

/* Desktop */
@media (width > 960px) {
    .template-review-archive > .wp-block-columns {
        gap: 6.5rem;
    }
    
    form.composer-reviews__search {
        padding: 1rem 1.5rem;
        margin-bottom: 1.5rem;
    }

    .template-review-archive h2.wp-block-heading + p {
        margin-bottom: 2.5rem;
    }

    .composer-reviews__jump {
        display: none;
    }

    .composer-reviews__az.composer-reviews__az--desktop {
        display: flex;
        justify-content: space-between;
    }

    .composer-reviews__az.composer-reviews__az--desktop .composer-reviews__az-link {
        color: #E82A00;
        font-weight: 700;
    }

    .composer-reviews__list {
        display: flex;
        flex-wrap: wrap;
        gap: 0.75rem 2.5rem;
    }

    .composer-reviews__list .composer-reviews__item {
        width: calc(50% - 1.25rem);
    }
    
}


/*************************************************
 * Page Sections
 *************************************************/


/* Hero */
.wp-block-cover.is-section-hero {
    margin-bottom: 3rem;
    max-width: unset;
    min-height: unset;
    overflow: hidden;
    padding: 0;
    position: relative;
}

.wp-block-cover.is-section-hero img.wp-block-cover__image-background {
    position: absolute;

    /* top: 50%;
    transform: translateY(-50%); */
    width: 100%;
    height: 100% !important;
    z-index: -1;
}

.wp-block-cover.is-section-hero > .wp-block-cover__inner-container {
    margin: 0 auto;
    max-width: 1280px;
    padding: 1.5rem 1rem;
}

.wp-block-cover.is-section-hero h2.wp-block-heading {
    font-size: 1.6875rem;
    line-height: 2rem;
    margin-bottom: 1rem;
}

.wp-block-cover.is-section-hero p {
    margin-bottom: 1.5rem;
}

.is-section-hero .wp-block-buttons {
    gap: 1rem;
}

/* Mobile */
@media (width <= 767px) {
    .is-section-hero .wp-block-button {
        width: 100%;
    }

    .is-section-hero .wp-block-button > a {
        text-align: center;
    }

}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    
}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-cover.is-section-hero {
        margin-bottom: 5rem;
    }

    .wp-block-cover.is-section-hero > .wp-block-cover__inner-container {
        padding: 5rem 2.5rem;
    }
    
    .wp-block-cover.is-section-hero h2.wp-block-heading {
        font-size: 2.75rem;
        line-height: 3.25rem;
    }
}

/* Desktop */
@media (width > 960px) {
    .wp-block-cover.is-section-hero > .wp-block-cover__inner-container {
        padding: 5rem 2.5rem;
    }
}


/* Media Content */
.wp-block-group.is-section-media-content  {
    margin: 0 auto;
    max-width: 1280px;
    padding: 1.5rem 1rem;
}

.wp-block-group.is-section-media-content p {
    margin-bottom: 1rem;
}

/* Mobile */
@media (width <= 767px) {
    .wp-block-group.is-section-media-content .wp-block-heading {
        font-size: 1.4375rem;
        line-height: 1.75rem;
        margin-bottom: 1rem;
    }

    .wp-block-group.is-section-media-content  {
        gap: 1rem !important;
        margin: 3rem auto;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .wp-block-group.is-section-media-content {
        gap: 1.5rem !important;
    }
}

@media (width < 960px) {
    .wp-block-group.is-section-media-content {
        flex-direction: column;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-group.is-section-media-content  {
        margin: 5rem auto;
        padding: 0 2.5rem;
    }
    
    .wp-block-group.is-section-media-content .wp-block-heading {
        font-size: 2rem;
        line-height: 2.5rem;
        margin-bottom: 1rem;
    }
}

/* Desktop */
@media (width > 960px) {
    .wp-block-group.is-section-media-content {
        gap: 5rem !important;
    }

    .wp-block-group.is-section-media-content > * {
        flex-basis: 50%;
    }
}


/* Video Post Grid */
.wp-block-group.is-section-video-post-grid {
    background-color: #D7D7AC;
    max-width: unset;
}

.wp-block-group.is-section-video-post-grid > .wp-block-group {
    margin: 0 auto;
    max-width: 1280px;
}

.wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap {
    padding: 0 !important;
}

.wp-block-group.is-section-video-post-grid > .wp-block-group > .wp-block-columns {
    gap: 2.5rem;
}

.wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item .sby_info .sby-video-info {
    display: flex;
    flex-direction: column;
}
    
.wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item .sby_info .sby-video-info .sby_meta {
    order: 3;
}

.wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item .sby_info .sby-video-info .sby_caption_wrap {
    text-align: left !important;
    margin: 0.5rem 0 1.5rem !important;
}

.is-section-video-post-grid .wp-block-post .wp-block-group > .wp-block-group {
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1rem;
}

.is-section-video-post-grid .wp-block-post .wp-block-group .wp-block-post-author-name::before {
    content: 'By ';
}

.is-section-video-post-grid .wp-block-post .wp-block-group .wp-block-post-date::before {
    content: ' / ';
    margin-left: 0.25rem;
}

.is-section-video-post-grid .wp-block-post-featured-image a {
    height: auto;
}

/* Mobile */
@media (width <= 767px) {
    .wp-block-group.is-section-video-post-grid > .wp-block-group {
        padding: 2rem 1rem;
    }

    .wp-block-group.is-section-video-post-grid .wp-block-heading {
        font-size: 1.5rem;
        line-height: 1.75rem;
    }

    .is-section-video-post-grid li.wp-block-post:not(:last-of-type) {
        margin-bottom: 2rem;
    }

    .is-section-video-post-grid .wp-block-post .wp-block-post-featured-image {
        margin: 0 0 0.5rem;
    }

    .is-section-video-post-grid .wp-block-post h2.wp-block-post-title {
        font-size: 1rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }

    .is-section-video-post-grid .wp-block-post .wp-block-post-excerpt p {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 1rem;
    }
}

/* Tablet and Mobile */
@media (width <= 959px) {
    .is-section-video-post-grid .wp-block-columns {
        flex-direction: column;
    }

}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item {
        width: calc(50% - 0.75rem) !important;
    }

    .wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item:nth-of-type(odd) {
        margin-right: 0.75rem;
    }

    .wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item:nth-of-type(even) {
        margin-left: 0.75rem;
    }

}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-group.is-section-video-post-grid > .wp-block-group {
        padding: 4rem 2.5rem;
    }

    .wp-block-group.is-section-video-post-grid .wp-block-heading {
        font-size: 2rem;
        line-height: 2.5rem;
    }

    .is-section-video-post-grid .wp-block-post-template {
        display: flex;
        flex-wrap: wrap;
        gap: 5rem 1.5rem;
    }

    .is-section-video-post-grid .wp-block-post-template li.wp-block-post {
        width: calc(50% - 0.75rem);
    }

    .is-section-video-post-grid .wp-block-post-template li.wp-block-post h2 {
        font-size: 1.125rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }

    /* Shortcode */

    .wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item {
        width: calc(50% - 1.25rem) !important;
    }

    .wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item:nth-of-type(odd) {
        margin-right: 1.25rem;
    }

    .wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item:nth-of-type(even) {
        margin-left: 1.25rem;
    }
    
    .wp-block-group.is-section-video-post-grid .sb_youtube > .sby_items_wrap .sby_item .sby_info {
        margin: 0.5rem 0 5rem !important;
    }
}

/* Desktop */
@media (width > 960px) {
    
}

/* ==========================================================================
   Ad Stack — Right sidebar advertisement column for synced video pattern
   Two-column flex layout for portrait ads (178x214), with landscape ads
   (367x55) spanning full width. Stacks vertically on mobile.
   ========================================================================== */

/* The wrapper is a flex container that wraps so portraits pair up
   and the landscape ad falls onto its own row at full width. */
.is-ad-stack {
	display: flex;
	flex-wrap: wrap;
	gap: 1rem;
	justify-content: center;
}

/* Reset default figure margins so gap controls all spacing */
.is-ad-stack .wp-block-image {
	margin: 0;
}

/* Portrait ads: 178x214 native. Use calc to fit two per row with the gap.
   max-width caps them at native size so they don't upscale on wider columns. */
.is-ad-stack .is-ad-portrait {
    display: contents;
	flex: 0 1 calc(50% - 0.5rem);
}

.is-ad-stack .is-ad-portrait img {
	width: 100%;
	height: auto;
	display: block;
}

/* Landscape ads: 367x55 native. Always span the full row regardless of
   what comes before it. */
.is-ad-stack .is-ad-landscape {
	flex: 1 0 100%;
	max-width: 367px;
}

.is-ad-stack .is-ad-landscape img {
	width: 100%;
	height: auto;
	display: block;
}

/* Tablet: column gets tight, but proportional scaling handles it.
   Reduce the gap slightly so the pair fits without breaking. */
@media (768px <= width <= 960px) {
	.is-ad-stack .is-ad-portrait {
		flex: 0 1 calc(33.3333% - 0.3333rem);
        min-width: calc(33.3333% - 0.6667rem);
	}

    .is-ad-stack .is-ad-landscape {
        min-width: 100%;
    }
}

/* Mobile: full column width, all ads stack vertically and center.
   The whole video section likely already restacks at this breakpoint. */
@media (width <= 767px) {
	.is-ad-stack .is-ad-portrait,
	.is-ad-stack .is-ad-landscape {
	    flex: 0 1 calc(50% - 0.5rem);
		max-width: 100%;
	}

    .is-ad-stack .is-ad-landscape {
        min-width: 100%;
    }
}


/* Testimonial / Quote */
.wp-block-group.is-section-testimonial {
    margin: 0 auto;
    max-width: 1280px;
}

.wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner {
    background-color: #F3F4F6;
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    margin: 0 auto;
}

.wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner p {
    margin-left: auto;
    margin-right: auto;
    max-width: 679px;
    text-align: center;
}

.testimonial-quote-icon {
    font-size: 4rem;
    line-height: 0.8;
    margin-bottom: -1rem;
}

.wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner figure.wp-block-image {
    text-align: center;
    margin: -0.5rem auto 1rem;
}

.wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner p.testimonial-text {
    font-family: Merriweather, serif;
}

.wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner p.testimonial-author {
    font-family: 'Nunito Sans', sans-serif;
    font-weight: 700;
}


/* Mobile */
@media (width <= 767px) {
    .wp-block-group.is-section-testimonial {
        margin: 3rem auto;
        padding: 0 1rem;
    }

    .wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner {
        padding: 2rem 1rem;
    }

    .wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner p.testimonial-text {
        font-size: 1rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }

    .wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner p.testimonial-author {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    
}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-group.is-section-testimonial {
        margin: 5rem auto;
        padding: 0 2.5rem;
    }

    .wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner {
        padding: 4rem 2.5rem;
    }

    .wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner p.testimonial-text {
        font-size: 1.125rem;
        line-height: 1.875rem;
        margin-bottom: 0.5rem;
    }

    .wp-block-group.is-section-testimonial > .wp-block-group.testimonial-inner p.testimonial-author {
        font-size: 0.875rem;
        line-height: 1.25rem;
    }
}

/* Desktop */
@media (width > 960px) {
    
}


/* Columns with Icons */
.wp-block-group.is-section-columns-icons {
    margin: 0 auto;
    max-width: 1280px;
}

.is-section-columns-icons .wp-block-column > .wp-block-group {
    align-items: flex-start;
}

.is-section-columns-icons .wp-block-image {
    margin-right: 1rem;
}

.is-section-columns-icons p {
    font-size: 1rem;
    line-height: 1.5rem;
}

/* Mobile */
@media (width <= 767px) {
    .wp-block-group.is-section-columns-icons {
        margin: 3rem auto;
        padding: 0 1rem;
    }
    
    .is-section-columns-icons h2.wp-block-heading {
        font-size: 1.5rem;
        line-height: 2rem;
        margin-bottom: 1.5rem;
    }

    .is-section-columns-icons .wp-block-column {
        margin-bottom: 2rem;
    }

    .is-section-columns-icons .wp-block-image {
        width: 32px;
    }

    .is-section-columns-icons .wp-block-image a {
        width: 32px;
    }

    .is-section-columns-icons h3.wp-block-heading {
        font-size: 1rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .is-section-columns-icons .wp-block-columns {
        gap: 4rem 2.5rem;
    }

    .is-section-columns-icons .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: calc(50% - 1.25rem) !important;
    }
    
}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-group.is-section-columns-icons {
        margin: 5rem auto;
        padding: 0 2.5rem;
    }
    
    .is-section-columns-icons h2.wp-block-heading {
        font-size: 2.25rem;
        line-height: 2.75rem;
        margin-bottom: 3rem;
    }

    .is-section-columns-icons .wp-block-columns {
        flex-wrap: wrap !important;
    }

    .is-section-columns-icons h3.wp-block-heading {
        font-size: 1.125rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }

    .is-section-columns-icons .wp-block-image {
        width: 40px;
    }

    .is-section-columns-icons .wp-block-image a {
        width: 40px;
    }
    
}

/* Desktop */
@media (width > 960px) {
    .is-section-columns-icons .wp-block-columns {
        gap: 5rem 2.5rem;
    }

    .is-section-columns-icons .wp-block-columns:not(.is-not-stacked-on-mobile) > .wp-block-column {
        flex-basis: calc(33.3333% - 1.6666rem) !important;
    }
    
}


/* Featured Callout */
.wp-block-group.is-section-featured-callout {
    margin: 0 auto;
    max-width: 1280px;
}

.wp-block-group.is-section-featured-callout > .wp-block-columns {
    background-color: #F3F4F6;
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    margin: 0 auto;
}

.wp-block-group.is-section-featured-callout .wp-block-column > figure.wp-block-image {
    margin-bottom: 0.5rem;
}

.wp-block-group.is-section-featured-callout .wp-block-columns .wp-block-columns .wp-block-column .wp-block-group.is-layout-flex {
    gap: 0.5rem;
    margin-bottom: 1rem;
}

.wp-block-group.is-section-featured-callout .wp-block-columns .wp-block-columns .wp-block-column .wp-block-group.is-layout-flex p {
    font-size: 0.875rem;
    line-height: 1.25rem;
}


/* Mobile */
@media (width <= 767px) {
    .wp-block-group.is-section-featured-callout {
        margin: 3rem auto;
        padding: 0 1rem;
    }

    .wp-block-group.is-section-featured-callout > .wp-block-columns {
        padding: 1.5rem 1rem;
    }

    .wp-block-group.is-section-featured-callout h2 {
        margin-bottom: 1rem;
    }

}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .wp-block-group.is-section-featured-callout > .wp-block-columns {
        padding: 3rem;
        flex-direction: column;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-group.is-section-featured-callout {
        margin: 5rem auto;
        padding: 0 2.5rem;
    }

    .wp-block-group.is-section-featured-callout .wp-block-columns .wp-block-columns {
        margin-bottom: 0.5rem;
    }

    .wp-block-group.is-section-featured-callout h2 {
        margin-bottom: 1.5rem;
    }
}

/* Desktop */
@media (width > 960px) {
    .wp-block-group.is-section-featured-callout > .wp-block-columns {
        align-items: center !important;
        padding: 2.5rem 5rem;
    }

    .wp-block-group.is-section-featured-callout > .wp-block-columns .wp-block-buttons {
        justify-content: flex-end;
    }
}


/* Columns w CTA */
.wp-block-group.is-section-columns-cta {
    margin: 0 auto;
    max-width: 1280px;
}

.wp-block-group.is-section-columns-cta > .wp-block-group {
    margin: 0 auto;
}

.wp-block-group.is-section-columns-cta .wp-block-group {
    align-items: center;
}

.wp-block-group.is-section-columns-cta .wp-block-group p {
    text-align: center;
}

.wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group {
    border: 1px solid #D1D5DB;
    border-radius: 8px;
}

.wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column:first-of-type > .wp-block-group {
    border: 2px solid#E82A00;
}

.wp-block-group.is-section-columns-cta p a {
    color: #231F20;
    font-size: 0.75rem;
    line-height: 1rem;
    text-decoration: underline;
}

.wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group p {
    margin-bottom: 1rem;
}

/* Mobile */
@media (width <= 767px) {
    .wp-block-group.is-section-columns-cta {
        margin: 3rem auto;
        padding: 0 1rem;
    }

    .wp-block-group.is-section-columns-cta h2 {
        font-size: 1.5rem;
        line-height: 2rem;
        margin-bottom: 1.5rem;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns {
        gap: 1rem;
        margin-bottom: 1.5rem;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group {
        padding: 2rem 1rem;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group h4 {
        font-size: 0.875rem;
        line-height: 1.25rem;
        margin-bottom: 0.5rem;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group h3 {
        font-size: 1.125rem;
        line-height: 1.5rem;
        margin-bottom: 1rem;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    
}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-group.is-section-columns-cta {
        margin: 5rem auto;
        padding: 0 2.5rem;
    }

    .wp-block-group.is-section-columns-cta h2 {
        font-size: 2.25rem;
        line-height: 3rem;
        margin-bottom: 3rem;
    }

    .wp-block-group.is-section-columns-cta > .wp-block-group {
        min-width: 100%;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns {
        flex-wrap: nowrap !important;
        gap: 1.5rem;
        margin-bottom: 2.5rem;
        width: 100%;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column {
        display: flex;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group {
        padding: 4rem 2.5rem;
        width: 100%;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group h4 {
        font-size: 1rem;
        line-height: 1.5rem;
        margin-bottom: 0.5rem;
    }

    .wp-block-group.is-section-columns-cta .wp-block-columns > .wp-block-column > .wp-block-group h3 {
        font-size: 1.5rem;
        line-height: 1.75rem;
        margin-bottom: 1rem;
    }
}

/* Desktop */
@media (width > 960px) {
    .wp-block-group.is-section-columns-cta .wp-block-columns {
        gap: 2.5rem;
    }
}


/* Reviews Grid */
.wp-block-group.is-section-reviews-grid,
.single-video .wp-block-group.is-section-video-grid {
    margin: 0 auto;
    max-width: 1280px;
}

.is-section-featured-grid h2 {
    font-style: italic;
}

.is-section-reviews-grid .wp-block-post .wp-block-group > .wp-block-post-featured-image {
    border: 1px solid #D1D5DB;
}

.is-section-reviews-grid .post-grid-heading > figure {
    margin-top: -0.25rem;
    margin-right: 0.5rem;
}

.is-section-reviews-grid .wp-block-post .review-content figure.wp-block-image {
    margin-bottom: 1rem;
}

.is-section-reviews-grid .wp-block-post:not(:first-of-type) .wp-block-group .review-content .wp-block-post-excerpt {
    display: none;
}

.is-section-reviews-grid .wp-block-post .review-content > .wp-block-group {
    display: inline-flex;
    font-size: 0.75rem;
    font-weight: 500;
    line-height: 1rem;
}

.is-section-reviews-grid .wp-block-post .review-content > .wp-block-group .wp-block-post-author-name::before {
    content: 'By ';
}

.is-section-reviews-grid .wp-block-post .review-content > .wp-block-group .wp-block-post-date {
    color: #6B7280;
}

.is-section-reviews-grid .wp-block-post .review-content > .wp-block-group .wp-block-post-date::before {
    content: ' / ';
    margin-left: 0.25rem;
}

/* Mobile */
@media (width <= 767px) {
    .wp-block-group.is-section-reviews-grid {
        margin: 40px auto;
        /*margin: 3rem auto;*/
        padding: 0 1rem;
    }

    .is-section-reviews-grid .wp-block-post > .wp-block-group {
        gap: 1rem;
    }

    .is-section-reviews-grid .wp-block-post:not(:first-of-type) .review-content figure.wp-block-image {
        margin-bottom: 0.5rem;
    }

    .is-section-reviews-grid .wp-block-post:not(:first-of-type) .wp-block-group .review-content h2.wp-block-post-title {
        font-size: 1.125rem;
        line-height: 1.5rem;
    }

    .is-section-reviews-grid .wp-block-post:not(:last-of-type) {
        margin-bottom: 2rem;
    }

    .is-section-reviews-grid .wp-block-post:first-of-type > .wp-block-group {
        flex-direction: column;
    }

    .is-section-reviews-grid .wp-block-post:not(:first-of-type) .wp-block-group > .wp-block-post-featured-image {
        min-width: 88px;
        width: 30%;
    }
}

/* Tablet and Mobile */
@media (width <= 959px) {
    .is-section-reviews-grid .wp-block-post:first-of-type > .wp-block-group {
        /* flex-direction: column; */
    }

}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .is-section-reviews-grid .wp-block-post:not(:first-of-type) .wp-block-group > .wp-block-post-featured-image {
        min-width: 166px;
        width: 24%;
    }

    .is-section-reviews-grid .wp-block-post:first-of-type .wp-block-group > .wp-block-post-featured-image {
        min-width: 213px;
        width: 31%;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .wp-block-group.is-section-reviews-grid {
		margin: 24px auto;
        /*margin: 5rem auto;*/
        padding: 0 2.5rem;
    }

    .is-section-reviews-grid .wp-block-post > .wp-block-group {
        gap: 1.5rem;
    }

    .is-section-reviews-grid .wp-block-post .wp-block-group .review-content h2.wp-block-post-title {
        font-size: 1.5rem;
        line-height: 1.75rem;
        margin-bottom: 1rem;
    }

    .is-section-reviews-grid .wp-block-post:first-of-type .wp-block-group .review-content h2.wp-block-post-title {
        font-size: 2.75rem;
        line-height: 3.25rem;
        margin-bottom: 1.5rem;
    }

    .is-section-reviews-grid .wp-block-post:not(:last-of-type) {
        margin-bottom: 2.5rem;
    }

    .is-section-reviews-grid .wp-block-post:first-of-type .wp-block-group .review-content .wp-block-post-excerpt {
        margin-bottom: 1rem;
    }
}

/* Desktop */
@media (width > 960px) {
    .is-section-reviews-grid ul.wp-block-post-template {
        display: flex;
        flex-wrap: wrap;
        gap: 2.5rem;
    }

    .is-section-reviews-grid ul.wp-block-post-template li.wp-block-post:not(:first-of-type) {
        width: calc(50% - 1.25rem);
    }

    .is-section-reviews-grid .wp-block-post:first-of-type > .wp-block-group {
        gap: 2.5rem;
    }

    .is-section-reviews-grid .wp-block-post .wp-block-group > .wp-block-post-featured-image {
        min-width: 166px;
        width: 28%;
    }

    .is-section-reviews-grid .wp-block-post:first-of-type .wp-block-group > .wp-block-post-featured-image {
        min-width: 373px;
        width: 31%;
    }
}


/* Post Grid - Columns */
.is-section-columns-grid.is-section-reviews-grid .wp-block-post > .wp-block-group {
    flex-direction: column;
}

.is-section-columns-grid.is-section-reviews-grid .wp-block-post .wp-block-group > .wp-block-post-featured-image {
    min-width: auto;
    width: 100%;
}

/* Mobile */
@media (width <= 767px) {
    .is-section-columns-grid.is-section-reviews-grid .wp-block-post .wp-block-group .review-content h2.wp-block-post-title {
        font-size: 1rem;
        line-height: 1.5rem;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .is-section-columns-grid.is-section-reviews-grid ul.wp-block-post-template {
        gap: 5rem 1.5rem;
    }

    .is-section-columns-grid.is-section-reviews-grid ul.wp-block-post-template li.wp-block-post {
        width: calc(50% - 0.75rem);
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .is-section-columns-grid.is-section-reviews-grid ul.wp-block-post-template {
        display: flex;
        flex-wrap: wrap;
    }

    .is-section-columns-grid.is-section-reviews-grid .wp-block-post {
        margin-bottom: 0;
    }

    .is-section-columns-grid.is-section-reviews-grid .wp-block-post .wp-block-group .review-content h2.wp-block-post-title {
        font-size: 1.125rem;
        line-height: 1.5rem;
    }
    
}

/* Desktop */
@media (width > 960px) {
    .is-section-columns-grid.is-section-reviews-grid ul.wp-block-post-template {
        gap: 5rem 2.5rem;
    }

    .is-section-columns-grid.is-section-reviews-grid ul.wp-block-post-template li.wp-block-post {
        width: calc(25% - 1.875rem);
    }
    
}


/* Composer Search Block */
.ct-composer-search {
    margin-inline: auto;
    max-width: 1280px;
}

.ct-composer-search__form {
    background-color: var(--color-bg-secondary);
    border: 1px solid #D1D5DB;
    border-radius: 8px;
    display: flex;
    align-items: center;
    width: 100%;
    position: relative;
}

.ct-composer-search__field {
    display: flex;
    align-items: center;
    position: relative;
}

.ct-composer-search__field--composer {
    flex: 1 1 auto;
    min-width: 0;
}

.ct-composer-search__field--genre {
    flex: 0 0 200px;
}

.ct-composer-search__field--insider {
    flex: 0 0 auto;
    white-space: nowrap;
}

.ct-composer-search__field--submit {
    flex: 0 0 auto;
}

.ct-composer-search__input {
    width: 100%;
    height: 48px;
    padding: 0 14px;
    font-family: inherit;
    font-size: 1rem;
    color: var(--color-text);
    background-color: var(--color-bg-input);
    border: 1.5px solid var(--color-border);
    border-radius: 6px;
    outline: none;
    box-sizing: border-box;
    appearance: none;
    transition: border-color 0.2s ease;
}

.ct-composer-search__input::placeholder {
    color: var(--color-text-muted);
}

.ct-composer-search__input:focus {
    border-color: var(--color-focus);
    box-shadow: 0 0 0 3px var(--color-focus-ring);
}

.ct-composer-search__input[type="search"]::-webkit-search-cancel-button,
.ct-composer-search__input[type="search"]::-webkit-search-decoration {
    appearance: none;
}

.ct-composer-search__field--composer .ct-autocomplete-dropdown {
    position: absolute;
    top: calc(100% + 4px);
    left: 0;
    right: 0;
    z-index: 100;
    margin: 0;
    padding: 4px 0;
    list-style: none;
    background-color: var(--color-bg-input);
    border: 1.5px solid var(--color-border);
    border-radius: 6px;
    box-shadow: 0 4px 12px rgb(0 0 0 / 10%);
    max-height: 240px;
    overflow-y: auto;
}

.ct-composer-search__field--composer .ct-autocomplete-dropdown li {
    padding: 8px 14px;
    cursor: pointer;
    font-size: 0.9375rem;
    color: var(--color-text);
}

.ct-composer-search__field--composer .ct-autocomplete-dropdown li:hover,
.ct-composer-search__field--composer .ct-autocomplete-dropdown li.is-active {
    background-color: var(--color-bg-hover);
}

select.ct-composer-search__select {
    width: 100%;
    height: 48px;
    padding: 0 36px 0 14px;
    font-family: inherit;
    font-size: 1rem;
    color: var(--color-text-muted);
    background-color: var(--color-bg-input);
    border: 1.5px solid var(--color-border);
    border-radius: 6px;
    outline: none;
    box-sizing: border-box;
    appearance: none;
    cursor: pointer;
    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='%23555' d='M7 10l5 5 5-5z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-position: right 12px center;
    transition: border-color 0.2s ease;
}

.ct-composer-search__select:focus {
    border-color: var(--color-focus);
    box-shadow: 0 0 0 3px var(--color-focus-ring);
}

.ct-composer-search__select option {
    color: var(--color-text);
}

label.ct-composer-search__insider-label,
.woocommerce-page label.ct-composer-search__insider-label {
    display: flex;
    align-items: center;
    gap: 8px;
    font-family: inherit;
    font-size: 1rem;
    color: var(--color-text);
    margin-bottom: 0;
    cursor: pointer;
    user-select: none;
}

.ct-composer-search__checkbox {
    position: absolute;
    opacity: 0;
    width: 0;
    height: 0;
    pointer-events: none;
}

.ct-composer-search__checkbox-ui {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    flex-shrink: 0;
    width: 20px;
    height: 20px;
    background-color: var(--color-bg-input);
    border: 1.5px solid var(--color-border-dark);
    border-radius: 3px;
    transition: background-color 0.15s ease, border-color 0.15s ease;
}

.ct-composer-search__checkbox:checked + .ct-composer-search__checkbox-ui {
    background-color: var(--color-text);
    border-color: var(--color-text);
}

.ct-composer-search__checkbox:checked + .ct-composer-search__checkbox-ui::after {
    content: '';
    display: block;
    width: 5px;
    height: 9px;
    border: 2px solid var(--color-text-inverse);
    border-top: none;
    border-left: none;
    transform: rotate(45deg) translate(-1px, -1px);
}

.ct-composer-search__checkbox:focus-visible + .ct-composer-search__checkbox-ui {
    outline: 2px solid var(--color-focus);
    outline-offset: 2px;
}

.ct-composer-search__submit {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    background-color: #231F20;
    color: #fff;
    border: none;
    border-radius: 8px;
    cursor: pointer;
    flex-shrink: 0;
    transition: background-color 0.2s ease, transform 0.1s ease;
}

.ct-composer-search__submit:hover {
    background-color: #3a3637;
}

.ct-composer-search__submit:active {
    transform: scale(0.95);
}

.ct-composer-search__submit svg {
    display: block;
}

/* Insider restriction */
body:not(.member-logged-in) .ct-composer-search__responsive {
    display: none !important;
}

/* Mobile */
@media (width <= 767px) {
    .ct-composer-search {
        margin: 1.5rem 0;
        padding: 0 1rem;
    }

    .ct-composer-search__form {
        flex-wrap: wrap;
        gap: 1rem;
        padding: 1rem;
    }

    body:not(.member-logged-in) .ct-composer-search__form {
        flex-wrap: nowrap;
    }

    .ct-composer-search__field--composer {
        flex: 1 1 100%;
    }

    .ct-composer-search__field--genre {
        flex: 1 1 100%;
    }

    .ct-composer-search__select {
        width: 100%;
    }

    .ct-composer-search__field--insider {
        flex: 1 1 auto;
    }

    .ct-composer-search__field--submit {
        flex: 0 0 auto;
        align-self: center;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    .ct-composer-search {
        margin: 1.5rem 0 2.5rem;
    }

    .ct-composer-search__field--genre {
        flex: 0 0 180px;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .ct-composer-search {
        padding: 0 2.5rem;
    }

    .ct-composer-search__form {
        gap: 1rem;
        padding: 1rem 1.5rem;
    }

}

/* Desktop — hide genre + insider, show composer input only */
@media (width > 960px) {
    .ct-composer-search {
        margin: 1.5rem auto;
    }
}


/* Insider Search Block */
.is-section-insider-search .ct-composer-search {
    padding: 0;
}

.is-section-insider-search h2.wp-block-heading {
    color: #FFF;
}

/* Mobile */
@media (width <= 767px) {
    .is-section-insider-search.wp-block-cover.is-section-hero h2.wp-block-heading {
        margin-bottom: 1.5rem;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .is-section-insider-search.wp-block-cover.is-section-hero h2.wp-block-heading {
        margin-bottom: 2.5rem;
    }
}

/* Desktop — show genre + insider now */
@media (width > 960px) {
    .is-section-insider-search .ct-composer-search__responsive {
        display: block !important;
    }

    .ct-composer-search__field--genre {
        min-width: 240px;
    }
}


/*************************************************
 * Popular Categories Pattern
 *************************************************/

.ct-popular-categories.wp-block-group {
    margin-inline: auto;
    max-width: 1280px;
}

/* ---------- Header ---------- */

.ct-popular-categories {
    margin-bottom: 3rem;
}

.wp-block-group.ct-popular-categories > .wp-block-group {
    margin: 0 auto;
    max-width: 1280px;
}

.ct-popular-categories__header {
    gap: 1.25rem;
    margin-bottom: 1.5rem;
    align-items: center;
}

.ct-popular-categories__rule.wp-block-separator {
    flex: 1 1 auto;
    border: none;
    border-top: 1px dashed #111827;
    margin: 0;
    height: 0;
    background: none;
    margin-left: 1rem;
}

/* ---------- Grid ---------- */

.ct-popular-categories__grid.wp-block-group {
    display: flex;
    flex-wrap: wrap;
}

.ct-popular-categories__cell.wp-block-group a {
    background-color: #F1F1EA;
    border: 1px solid #E5E5D8;
    display: block;
}

.ct-popular-categories__cell.wp-block-group p.ct-popular-categories__label {
    width: 100%;
    text-align: center;
}

.ct-popular-categories__label a {
    text-decoration: none;
}

/* ---------- Responsive ---------- */

/* Mobile */
@media (width <= 767px) {
    .ct-popular-categories.wp-block-group {
        margin-block: 3rem;
        margin-inline: auto;
    }

    .wp-block-group.ct-popular-categories > .wp-block-group {
        padding: 0 1rem;
    }

    .wp-block-group.ct-popular-categories > .ct-popular-categories__header.wp-block-group {
        margin-bottom: 1.5rem;
    }
    
    .ct-popular-categories__grid.wp-block-group {
        gap: 1.25rem 1rem;
    }

    .ct-popular-categories__cell.wp-block-group {
        width: calc(50% - 0.5rem);
    }

    .ct-popular-categories__cell.wp-block-group a {
        padding: 1rem 0.5rem;
    }

    .ct-popular-categories__cell.wp-block-group p.ct-popular-categories__label {
        font-size: 0.825rem;
        line-height: 1.25rem;
    }
}

/* Tablet */
@media (768px <= width <= 960px) {
    .ct-popular-categories__grid.wp-block-group {
        gap: 1rem 0.5rem;
    }

    .ct-popular-categories__cell.wp-block-group {
        width: calc(33.3333% - 0.3333rem);
    }

    .ct-popular-categories__cell.wp-block-group a {
        padding: 1rem;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .ct-popular-categories.wp-block-group {
        margin-block: 5rem;
        margin-inline: auto;
    }

    .wp-block-group.ct-popular-categories > .wp-block-group {
        padding: 0 2.5rem;
    }

    .wp-block-group.ct-popular-categories > .ct-popular-categories__header.wp-block-group {
        margin-bottom: 2.5rem;
    }

    .ct-popular-categories__cell.wp-block-group p.ct-popular-categories__label {
        font-size: 1rem;
        line-height: 1.5rem;
    }
    
}

/* Desktop */
@media (width > 960px) {
    .ct-popular-categories__grid.wp-block-group {
        gap: 1rem;
    }

    .ct-popular-categories__cell.wp-block-group {
        width: calc(33.3333% - 0.6666rem);
    }

    .ct-popular-categories__cell.wp-block-group a {
        padding: 1rem;
    }
    
}


/* Single Video */
.single-video .review-single-heading .wp-block-post-author {
    align-items: center;
}

.single-video .review-single-heading .wp-block-post-author__name, 
.single-video .review-single-heading .wp-block-post-date {
    font-style: italic;
    position: relative;
}

.single-video .review-single-heading .wp-block-post-date::before {
    content: ' / ';
    margin-left: 0.25rem;
}

.single-video .entry-content > * {
    margin-bottom: 1.5rem !important;
}

/* Mobile */
@media (width <= 767px) {
    .single-video .review-single-heading > .wp-block-group {
        gap: 0.5rem;
        margin-bottom: 1rem;
    }

    .single-video .review-single-heading .wp-block-post-author__name, 
    .single-video .review-single-heading .wp-block-post-date {
        font-size: 0.75rem;
        line-height: 1.25rem;
    }

    .single-video .wp-block-group.is-section-video-grid {
        margin: 3rem auto 0;
    }
}

/* Tablet down to just before mobile */
@media (768px <= width <= 960px) {
    
}

/* Tablet and up */
@media (width >= 768px) {
    .single-video .review-single-heading > .wp-block-group {
        gap: 1rem;
    }

    .single-video .review-single-heading > .wp-block-group {
        margin-bottom: 2.5rem;
    }

    .single-video .wp-block-group.is-section-video-grid {
        margin-top: 5rem;
    }
    
}

/* Desktop */
@media (width > 960px) {
    .single-video .template-review-single .wp-block-columns {
        column-gap: 6.5rem;
    }
}


/* ==========================================================================
   Featured Posts Section
   Homepage grid of posts from the "Features" category. Card structure is
   date + title + excerpt + read-more, with no featured image (posts on this
   site never have one). Built on the .is-section-reviews-grid heading
   pattern for visual consistency with the review grids.
   ========================================================================== */

.is-section-featured-posts .featured-posts-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 2rem;
}

.featured-post-card {
	gap: 0.5rem;
}

.featured-post-card__date {
	font-size: 0.85rem;
	color: #6b7280;
}

.featured-post-card__title {
	margin: 0;
}

.featured-post-card__excerpt {
	margin: 0;
}

/* Read More — core/read-more renders as an <a>; style it as a button so it
   matches the look the client asked for while keeping a real post link. */
.featured-post-card__readmore {
	align-self: flex-start;
	margin-top: 0.5rem;
	padding: 0.5rem 1.25rem;
	background-color: #d4341f;
	color: #ffffff;
	text-decoration: none;
	border-radius: 4px;
	font-size: 0.9rem;
}

.featured-post-card__readmore:hover,
.featured-post-card__readmore:focus {
	background-color: #b62c1a;
}
.featured-post-card__readmore:visited {
	color: #ffffff;
}

/* Tablet — drop to two columns */
@media (width >= 768px) and (width <= 960px) {
	.is-section-featured-posts .featured-posts-grid {
		grid-template-columns: repeat(2, 1fr);
	}
}

/* Mobile — single column */
@media (width <= 767px) {
	.is-section-featured-posts .featured-posts-grid {
		grid-template-columns: 1fr;
		gap: 1.5rem;
	}

    .is-section-featured-posts.is-section-reviews-grid .wp-block-post .wp-block-group h2.wp-block-post-title {
        font-size: 1.125rem;
        line-height: 1.5rem;
    }
}

/* Tablet and up */
@media (width >= 768px) {
    .is-section-featured-posts.is-section-reviews-grid .wp-block-post .wp-block-group h2.wp-block-post-title {
        font-size: 1.5rem;
        line-height: 1.75rem;
    }
    
}

/* Desktop */
@media (width > 960px) {
    .is-section-featured-posts.is-section-reviews-grid .wp-block-post:first-of-type > .wp-block-group {
        gap: 1.5rem;
    }
}