/*
Theme Name: DragonBridge
Theme URI: https://treasurecoastrenaissancefestival.com/
Author: DragonBridge
Author URI: https://treasurecoastrenaissancefestival.com/
Description: DragonBridge is a richly themed Renaissance-style WordPress theme crafted for festivals, fairs, working farms, and historical event venues. Built with deep burgundy and aged gold as primary colors, accented by forest green and parchment cream, it captures the feel of medieval banners, illuminated manuscripts, and royal heraldry. Includes ornamental dividers, scrollwork accents, and serif typography (Cinzel & Cormorant Garamond). Suitable for blogs, event sites, farm storefronts, and WooCommerce shops selling tickets, mead, crafts, and merchandise. Theme supports popular page builders like Elementor, Beaver Builder, SiteOrigin, Divi, Brizy, and Gutenberg. SEO friendly, WPML and RTL ready.
Version: 1.4.21
Tested up to: 6.9
Requires PHP: 5.6
License: GNU General Public License v3.0 or later
License URI: https://www.gnu.org/licenses/gpl.html
Tags: one-column, two-columns, full-width-template, right-sidebar, custom-background, custom-menu, custom-header, editor-style, featured-images, translation-ready, custom-logo, threaded-comments, footer-widgets, rtl-language-support, blog, e-commerce
Text Domain: dragonbridge
*/

a img.aligncenter {
    display: block;
    margin-left: auto;
    margin-right: auto;
}

a img.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

a img.alignnone {
    margin: 5px 20px 20px 0;
}

a img.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

a, a:active, a:focus, a:hover {
    color: #6B1414;
    text-decoration: none;
}

a.comment-reply-link {
    border: 1px solid #ccc;
    padding: 10px 20px;
}

a.comment-reply-link, button, input#submit, input[type="submit"], .btn-default {
    -webkit-transition: all 0.3s ease-in-out;
    background-color: transparent;
    border-radius: 2px;
    border: 1px solid;
    box-shadow: none;
    color: #000;
    font-size: 14px;
    font-weight: 400;
    padding: 10px 25px;
    transition: all 0.3s ease-in-out;
}

a.post-edit-link {
    display: block;
}

a:active {
    border-bottom: none;
}

a:focus, .dropdown-toggle:focus {
    outline: thin dotted;
}

article {
    clear: none;
    margin-bottom: 30px;
}

article.content-article:nth-of-type(2n+1) {
    clear: both;
}

body {
    color: #404040;
    font-family: 'Cormorant Garamond', 'EB Garamond', Georgia, "Times New Roman", serif;
    font-size: 15px;
    font-weight: 400;
    line-height: 1.6;
    padding: 0;
    word-wrap: break-word;
}

button#place_order {
    border-radius: 5px;
    display: inline-block;
    float: none;
    font-size: 19px;
    margin-bottom: 20px;
    margin-top: 20px;
    margin: 0 auto;
    padding: 15px;
    width: 100%;
}

button.dgwt-wcas-search-submit, button.dgwt-wcas-search-submit:hover {
    background: initial;
}

button.header-search-button {
    background-color: #6B1414;
    border-radius: 0;
    border: none;
    color: inherit;
    font-size: 20px;
    height: 40px;
    line-height: 40px;
    padding: 0 12px;
    position: absolute;
    right: 0;
    top: 0;
    width: 42px;
}

button.header-search-button .la {
    color: #fff;
}

cite.fn {
    font-weight: bold;
}

div.aligncenter, .aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}

embed, iframe {
    max-width: 100%;
}

fieldset {
    border: 2px solid #e5e5e5;
    margin: 5px 2px 15px 2px;
    padding: 0.35em 0.625em 0.75em;
}

form.search-form label {
    display: block;
    width: 100%;
}

form.search-form, form.woocommerce-product-search {
    position: relative;
}

h1, h2, h3, h4, h5, h6 {
    font-weight: 700;
    letter-spacing: -.02em;
    word-wrap: break-word;
}

h1.site-title, .site-title {
    margin: 0;
}

h1.site-title a, .site-title a {
    color: #2b2b2b;
    font-size: 34px;
    font-weight: 800;
    line-height: 48px;
    text-transform: uppercase;
    margin: 0;
    padding: 0;
    word-wrap: break-word;
}

.single-title {
    font-size: calc(2vw + 2vh);
    margin: 0;
}

html {
    -ms-overflow-x: hidden;
    overflow-x: hidden;
    overflow-y: scroll;
    scroll-behavior: smooth;
}

img {
    height: auto;
    max-width: 100%;
}

img.alignnone {
    height: auto;
    max-width: 96%;
    width: auto;
}

input, textarea {
    background-color: #fff;
    border-radius: 0;
    color: #464a4c;
    padding: 8px;
}

.site-heading-sidebar {
    display: inline-flex;
}

.header-search-form input.header-search-input {
    background-color: transparent;
    border-radius: 0;
    border-radius: 0px;
    border: none;
    display: inline-block;
    float: left;
    height: 40px;
    padding-left: 15px;
    position: relative;
    right: 0px;
    width: 60%;
}

input[type="color"], input[type="date"], input[type="datetime"], input[type="datetime-local"], input[type="email"], input[type="month"], input[type="number"], input[type="password"], input[type="range"], input[type="search"], input[type="tel"], input[type="text"], input[type="time"], input[type="url"], input[type="week"], textarea {
    -webkit-border-radius: 3px;
    background-image: -webkit-linear-gradient(rgba(255,255,255,0), rgba(255,255,255,0));
    border-radius: 3px;
    border: 1px solid #bbb;
    display: block;
    width: 100%;
}

input[type="search"].search-field::-webkit-input-placeholder {
    color: #5b5b5b;
}

input[type="search"].search-field:focus::-webkit-input-placeholder {
    color: #545454;
    padding: 20px 0 0 0;
}

legend {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    border-bottom: 0;
    box-sizing: border-box;
    color: inherit;
    display: table;
    max-width: 100%;
    padding-left: 5px;
    padding-right: 5px;
    padding: 0;
    white-space: normal;
    width: auto;
}

li.menu-item-has-children a.envo-categories-menu-first {
    min-width: 200px;
    padding-left: 45px;
    padding-right: 45px;
    width: 100%;
}

li.menu-item-has-children a.envo-categories-menu-first:before {
    content: "\f550";
    font-family: "Line Awesome Free";
    font-size: 15px;
    font-weight: 900;
    left: 0;
    margin-left: 20px;
    position: absolute;
    right: auto;
}

nav a, #site-navigation {
    -webkit-transition: all 0.3s ease;
    border-radius: 0;
    color: #2b2b2b;
    transition: all 0.3s ease;
}

nav.navigation.pagination {
    clear: both;
    margin: 20px 0;
    text-align: center;
    width: 100%;
}

nav.navigation.pagination .current {
    background-color: transparent;
    color: #fff;
}

nav.navigation.pagination .current, nav.navigation.pagination .nav-links a {
    border-radius: 0;
    border: 1px solid #b5b5b5;
    border: none;
    padding: 5px 10px;
    position: relative;
    z-index: 1;
}

nav.navigation.post-navigation {
    clear: both;
    width: 100%;
}

select {
    color: #000;
    max-width: 100%;
    padding: 5px;
}

select.header-search-select {
    background-color: #fff;
    border: none;
    border-left: 1px solid #ececec;
    display: inline-block;
    float: left;
    height: 40px;
    width: 40%;
}

span.comments-meta i {
    margin-left: 5px;
}

table {
    border-collapse: collapse;
    width: 100%;
}

td, th {
    padding: 6px;
}

th {
    font-weight: bold;
}

#content-footer-section {
    background-color: #808080;
    clear: both;
    color: #ffffff;
    padding: 15px;
}

#content-footer-section .comments-meta, #content-footer-section .comments-meta a, #content-footer-section .posted-date {
    color: #cacaca;
    font-size: 15px;
    font-style: italic;
    font-weight: 400;
    position: relative;
}

#content-footer-section .news-item h2 a {
    color: #fff;
    font-weight: 400;
}

#content-footer-section .widget-title h3 {
    color: #fff;
}

#content-footer-section .widget.col-md-3 {
    margin: 1%;
}

#respond .comment-form-author {
    padding-right: 5%;
}

#respond .comment-form-author, #respond .comment-form-email {
    float: left;
    width: 50%;
}

#respond .comment-form-url, #respond input#url {
    float: left;
    width: 100%;
}

#respond input[type="checkbox"], #respond input[type="radio"] {
    float: left;
    margin-right: 10px;
    width: auto;
}

#second-site-navigation {
    background-color: #ffffff;
    border-bottom: 1px solid #f6f6f6;
    border-left: none;
    border-radius: 0;
    border-right: none;
    border-top: none;
}

#sidebar {
    display: inline-block;
    max-width: 100%;
}

#site-navigation {
    background-color: transparent;
    border: none;
    min-height: 50px;
}

#site-navigation .container {
    position: relative;
}

#theme-menu-second .navbar-nav > li > a {
    font-weight: 400;
}

#theme-menu-second li.menu-item-has-children>a:before {
    display: none;
}

.aligncenter {
    display: block;
    margin: 5px auto 5px auto;
}

.alignleft {
    float: left;
    margin: 5px 20px 20px 0;
}

.alignnone {
    margin: 5px 20px 20px 0;
}

.alignright {
    float: right;
    margin: 5px 0 20px 20px;
}

.page .article-meta {
    display: none;
}

.archive-item .article-meta {
    align-items: center;
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    justify-content: space-between;
}

.archive-page-header h1 {
    margin: 0;
    padding-bottom: 25px;
}

.author-meta a {
    font-size: 15px;
    margin-left: 0px;
    margin-right: 20px;
    font-style: italic;
}

.author-meta-by {
    font-size: 80%;
    font-style: italic;
    position: relative;
}

.bypostauthor, .sticky {
}

.cat-links a, .cat-links span, .posted-date, .tags-links span {
    color: #404040;
    font-size: 14px;
    font-style: italic;
    font-weight: 400;
    position: relative;
}

.cat-links, .tags-links {
    display: inline-block;
    margin-bottom: 5px;
    width: 100%;
}

.checkbox input[type="checkbox"], .checkbox-inline input[type="checkbox"], .radio input[type="radio"], .radio-inline input[type="radio"] {
    margin-left: 0;
    position: relative;
}

.checkbox, .radio {
    display: inline-block;
}

.comment-body {
    margin-bottom: 40px;
}

.comment-body a, .single-entry-summary a, .textwidget a {
    text-decoration: underline;
}

.comment-form #comment {
    width: 100%;
}

.comment-meta.commentmetadata {
    font-size: 12px;
    font-style: italic;
    margin: 10px 0;
}

.commentlist li {
    list-style-type: none;
}

.comments-meta {
    color: #404040;
    display: inline-block;
    font-size: 15px;
    font-style: italic;
    font-weight: 400;
    padding: 0 8px;
    position: relative;
    z-index: 5;
}

.comments-meta, .posted-date {
    margin-right: 20px;
}

.content-date-comments {
    display: inline-block;
}

.dropdown-menu .menu-description {
    display: inline;
    left: 0;
    margin: 5px;
    position: relative;
    top: -2px;
}

.dropdown-menu .menu-description:after {
    display: none;
}

.dropdown-menu > .active > a, .dropdown-menu > .active > a:focus, .dropdown-menu > .active > a:hover {
    background-color: #6B1414;
}

.dropdown-menu > li > a {
    border-bottom: 0;
    padding: 5px 20px 5px 10px;
}

.dropdown-submenu {
    position: relative;
}

.dropdown-submenu.pull-left {
    float: none;
}

.dropdown-submenu.pull-left>.dropdown-menu {
    -moz-border-radius: 6px 0 6px 6px;
    -webkit-border-radius: 6px 0 6px 6px;
    border-radius: 6px 0 6px 6px;
    left: -100%;
    margin-left: 10px;
}

.dropdown-submenu:hover>a:after {
    border-left-color: #fff;
}

.dropdown-submenu>.dropdown-menu {
    -moz-border-radius: 0 6px 6px;
    -webkit-border-radius: 0 6px 6px 6px;
    border-radius: 0 6px 6px 6px;
    left: 100%;
    margin-left: -1px;
    margin-top: -6px;
    top: 0;
}

.dropdown-submenu>a:after {
    border-color: transparent;
    border-left-color: #ccc;
    border-style: solid;
    border-width: 5px 0 5px 5px;
    content: " ";
    display: block;
    float: right;
    height: 0;
    margin-right: -10px;
    margin-top: 5px;
    width: 0;
}

.entry-footer, .single-entry-summary {
    clear: both;
    margin-top: 15px;
    width: 100%;
}

.error-template {
    padding-bottom: 60px;
}

.featured-thumbnail {
    position: relative;
    width: 100%;
}

.featured-thumbnail img {
    text-align: center;
    width: 100%;
}

.footer-credits {
    background-color: #1e1e1e;
    clear: both;
}

.footer-credits-text {
    color: #fff;
    padding: 20px 0;
}

.gallery-caption {
    font-weight: bold;
}

.header-right {
    align-items: center;
    display: flex;
    flex-direction: row;
    justify-content: flex-end;
    min-width: max-content;
    padding-left: 20px;
    position: relative;
}

.header-right.menu-button {
    max-width: 34px;
}

.header-search-form {
    background-color: #fff;
    border-color: #6B1414;
    border-radius: 0;
    border: 1px solid;
    display: inline-block;
    float: left;
    height: 42px;
    padding-right: 42px;
    position: relative;
    width: 100%;
}

.heading-row {
    align-items: center;
    display: flex;
    float: none;
    position: relative;
}

.homepage-area .widget {
    margin: 0;
    padding: 0;
}

.inner-wrapper {
    display: block;
    margin-bottom: 15px;
}

.main-container {
    background-color: #fff;
}

.main-content {
    float: left;
    width: 100%;
}

.main-menu {
    position: relative;
    z-index: 97;
}

.main-menu .container {
    align-items: center;
    display: flex;
    float: none;
    position: relative;
}

.menu-cats-on, .menu-right-on, .search-on {
    width: 100%;
}

.menu-description {
    background: #6B1414;
    border-radius: 1px;
    bottom: 100%;
    color: #fff;
    display: inline-table;
    font-size: 9px;
    font-weight: 700;
    left: calc(100% - 25px);
    line-height: 10px;
    line-height: normal;
    margin: 0px 3px -15px 3px;
    overflow-wrap: unset;
    padding: 2px 4px;
    position: absolute;
    width: max-content;
    word-break: keep-all;
    z-index: 9;
}

.menu-description:after {
    border-left: 0px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #6B1414;
    bottom: -4px;
    content: '';
    height: 0;
    left: 3px;
    position: absolute;
    width: 0;
}

.menu-heading {
    flex-grow: 1;
}

.mobile-heading .site-branding-logo img {
    max-height: 50px;
}

.nav-links {
    clear: both;
    display: block;
    float: left;
    margin-bottom: 15px;
    width: 100%;
}

.nav-links .nav-title {
    position: relative;
}

.nav-next .fa {
    margin-left: 5px;
}

.nav-previous .fa {
    margin-right: 5px;
}

.nav-subtitle {
    background: transparent;
    color: initial;
    display: block;
    font-size: 13px;
    opacity: 0.8;
    text-transform: uppercase;
}

.navbar {
    margin-bottom: 0;
}

.navbar-default .navbar-nav > li > a {
    color: #2b2b2b;
}

.navbar a[href$="x.com"],.navbar a[href$="/feed/"], .navbar a[href*="dribbble.com"], .navbar a[href*="facebook.com"], .navbar a[href*="flickr.com"], .navbar a[href*="foursquare.com"], .navbar a[href*="instagram.com"], .navbar a[href*="linkedin.com"], .navbar a[href*="mailto:"], .navbar a[href*="pinterest.com"], .navbar a[href*="plus.google.com"], .navbar a[href*="reddit.com"], .navbar a[href*="tumblr.com"], .navbar a[href*="twitch.tv"], .navbar a[href*="twitter.com"], .navbar a[href*="vimeo.com"], .navbar a[href*="vk.com"], .navbar a[href*="wordpress.com"], .navbar a[href*="wordpress.org"], .navbar a[href*="youtube.com"] {
    font-size: 20px;
    min-width: 30px;
    padding-left: 7px;
    padding-right: 7px;
    text-indent: -9999px;
    white-space: normal;
}

.navbar a[href$="/feed/"]:after {
    color: #ff9900;
    content: "\f09e";
    font-family: "Line Awesome free";
}

.navbar a[href$="/feed/"]:after, .navbar a[href*="dribbble.com"]:after, .navbar a[href*="facebook.com"]:after, .navbar a[href*="flickr.com"]:after, .navbar a[href*="foursquare.com"]:after, .navbar a[href*="instagram.com"]:after, .navbar a[href*="linkedin.com"]:after, .navbar a[href*="mailto:"]:after, .navbar a[href*="pinterest.com"]:after, .navbar a[href*="plus.google.com"]:after, .navbar a[href*="reddit.com"]:after, .navbar a[href*="tumblr.com"]:after, .navbar a[href*="twitch.tv"]:after, .navbar a[href*="twitter.com"]:after, .navbar a[href*="vimeo.com"]:after, .navbar a[href*="vk.com"]:after, .navbar a[href*="wordpress.com"]:after, .navbar a[href*="wordpress.org"]:after, .navbar a[href*="youtube.com"]:after {
    display: block;
    float: left;
    font-family: "Line Awesome Brands";
    font-weight: 900;
    position: relative;
    text-indent: 0;
}
.navbar a[href$="x.com"]:after{
    content: "";
    display: block;
    float: left;
    position: relative;
    text-indent: 0;
    background-image: url("data:image/svg+xml,%3Csvg class='the-icon' aria-labelledby='the-twitter-x-icon' role='img' viewBox='0 0 24 24' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M14.095479,10.316482L22.286354,1h-1.940718l-7.115352,8.087682L7.551414,1H1l8.589488,12.231093L1,23h1.940717 l7.509372-8.542861L16.448587,23H23L14.095479,10.316482z M11.436522,13.338465l-0.871624-1.218704l-6.924311-9.68815h2.981339 l5.58978,7.82155l0.867949,1.218704l7.26506,10.166271h-2.981339L11.436522,13.338465z'/%3E%3C/svg%3E");
    background-repeat: no-repeat no-repeat;
    background-position: center center;
    background-size: cover;
    width: 12px;
    height: 12px;
    top: 4px;
}
.navbar a[href*="dribbble.com"]:after {
    color: #ea4c89;
    content: "\f17d";
}

.navbar a[href*="facebook.com"]:after {
    color: #3b5998;
    content: "\f09a";
}

.navbar a[href*="flickr.com"]:after {
    color: #ff0084;
    content: "\f16e";
}

.navbar a[href*="foursquare.com"]:after {
    color: #0072b1;
    content: "\f180";
}

.navbar a[href*="instagram.com"]:after {
    color: #517fa4;
    content: "\f16d";
}

.navbar a[href*="linkedin.com"]:after {
    color: #007bb6;
    content: "\f0e1";
}

.navbar a[href*="mailto:"]:after {
    color: #2b2b2b;
    content: "\f658";
    font-family: "Line Awesome free";
}

.navbar a[href*="pinterest.com"]:after {
    color: #cb2027;
    content: "\f231";
}

.navbar a[href*="reddit.com"]:after {
    content: "\f281";
}

.navbar a[href*="tumblr.com"]:after {
    color: #32506d;
    content: "\f173";
}

.navbar a[href*="twitch.tv"]:after {
    color: #6441a5;
    content: "\f1e8";
}

.navbar a[href*="twitter.com"]:after {
    color: #00aced;
    content: "\f099";
}

.navbar a[href*="vimeo.com"]:after {
    color: #aad450;
    content: "\f194";
}

.navbar a[href*="vk.com"]:after {
    color: #4a76a8;
    content: "\f189";
}

.navbar a[href*="wordpress.com"]:after, .navbar a[href*="wordpress.org"]:after {
    color: #0073aa;
    content: "\f19a";
}

.navbar a[href*="youtube.com"]:after {
    color: #bb0000;
    content: "\f167";
}

.navbar-collapse {
    padding-left: 0;
    padding-right: 0;
}

.navbar-inverse .navbar-toggle .icon-bar {
    background-color: #ccc;
}

.navbar-nav > li > a {
    border-bottom: 0;
    display: inline-block;
    font-size: 15px;
    font-weight: 700;
    max-height: 50px;
    vertical-align: middle;
}

.navbar-nav > li > a.envo-categories-menu-first {
    border-radius: 0;
    color: #fff;
    margin-left: 0;
    margin-right: 0;
}

.navbar-nav li.fa {
    display: block;
    position: relative;
}

.navbar-nav.envo-categories-menu {
    background-color: #6B1414;
}

.navbar-toggle {
    border: 1px solid #ccc;
}

.news-item {
    margin-bottom: 10px;
}

.news-item h2 {
    font-size: 26px;
    font-weight: 700;
    margin-bottom: 10px;
    margin-top: 20px;
}

.news-item h2 a {
    color: #404040;
    font-size: 30px;
    font-weight: 500;
}

.news-item.layout-two h2 {
    font-size: 18px;
}

.news-item:hover img {
    -webkit-animation: flash 1.5s;
    animation: flash 1.5s;
    opacity: 1;
}

.news-thumb {
    -moz-box-shadow: 0px 5px 5px 0px rgba(0,0,0,.0);
    -webkit-box-shadow: 0px 5px 5px 0px rgba(0,0,0,.0);
    box-shadow: 0px 5px 5px 0px rgba(0,0,0,.2);
    clear: both;
    margin-bottom: 20px;
    text-align: center;
    width: 100%;
}

.one-news-section .news-item h2 {
    font-size: 28px;
    margin-top: 10px;
}

.page h1.single-title {
    margin-bottom: 15px;
    margin-top: 10px;
}

.page-area {
    padding-top: 15px;
}

.page-header {
    margin: 20px 0;
    text-align: center;
    width: 100%;
    border-bottom: none;
}

.page-header a {
    border-bottom: 0;
    color: #2b2b2b;
}

.post-excerpt {
    clear: both;
    display: block;
    font-size: 14px;
    font-weight: 400;
}

.post-navigation .nav-next {
    float: right;
    text-align: right;
    width: 50%;
}

.post-navigation .nav-previous {
    float: left;
    text-align: left;
    width: 50%;
}

.reply {
    margin: 20px 0;
}

.screen-reader-text {
    border: 0;
    clip-path: inset(50%);
    clip: rect(1px,1px,1px,1px);
    height: 1px;
    margin: -1px;
    overflow: hidden;
    padding: 0;
    position: absolute !important;
    width: 1px;
    word-wrap: normal !important;
}

.screen-reader-text:focus {
    background-color: #f1f1f1;
    border-radius: 3px;
    box-shadow: 0 0 2px 2px rgba(0,0,0,0.6);
    clip-path: none;
    clip: auto !important;
    color: #21759b;
    display: block;
    font-size: 14px;
    font-weight: bold;
    height: auto;
    left: 10px;
    line-height: normal;
    padding: 15px 23px 14px;
    text-decoration: none;
    top: 5px;
    width: auto;
    z-index: 100000;
}

.search-field {
    border-radius: 3px;
    border: 1px solid #e2e2e2;
    padding-right: 90px;
    width: 100%;
}

.search-submit, .woocommerce-product-search button {
    bottom: 2px;
    line-height: 18px;
    position: absolute;
    right: 2px;
    top: 2px;
}

.shrink .header-heading-shrink {
    flex-grow: 1;
}

.shrink .header-right {
    max-width: max-content;
}

.shrink .menu-heading {
    flex-grow: 0;
}

.single-content.row {
    margin-bottom: 60px;
}

.single-footer.row {
    clear: both;
}

.single-head {
    clear: both;
    margin-bottom: 10px;
    position: relative;
}

.single-page-header {
    color: #fff;
    font-size: 44px;
    font-weight: 700;
}

.site-branding-logo a {
    border: none;
    position: relative;
    z-index: 99;
}

.site-branding-logo img {
    width: auto;
}

.site-branding-logo, .site-branding-text {
    float: left;
    margin-bottom: 0;
    text-align: left;
}

.site-branding-text {
    position: relative;
    z-index: 99;
}

.site-description {
    display: inline-block;
    font-size: 14px;
    line-height: 20px;
    margin: 0;
    position: relative;
}

.site-header {
    background-color: #fff;
    border-bottom: 1px solid #f6f6f6;
    padding: 15px 0;
    position: relative;
    z-index: 98;
}

.site-heading {
    padding-left: 15px;
    padding-right: 15px;
}

.heading-row .site-heading {
    display: flex;
    align-items: center;
}

.header-woonav:not(.woo-on) .heading-row.row, .header-woonav:not(.woo-on) .heading-row .site-heading {
    display: flex;
    justify-content: center;
    flex-direction: column;
}

.site-heading-sidebar .widget {
    float: left;
    font-size: 80%;
    margin-bottom: 5px;
    margin-left: 15px;
}

.site-heading-sidebar .widget:first-of-type {
    margin-left: 0;
}

.site-heading-sidebar p {
    margin-bottom: 0;
}

.size-auto, .size-full, .size-large, .size-medium, .size-thumbnail {
    height: auto;
    max-width: 100%;
}

.space-right {
    margin-right: 15px;
}

.tagcloud a {
    border: 1px solid;
    display: inline-block;
    font-size: 15px !important;
    margin-bottom: 5px;
    padding: 0px 6px;
}

.tags-links a {
    color: #404040;
    font-size: 14px;
    font-style: italic;
    margin-right: 8px;
    opacity: 0.9;
    position: relative;
}

.taxonomy-description {
    margin-bottom: 20px;
}

.top-header {
    position: relative;
    height: 75vh;
    background-color: #3c3c3c;
}

.single-image {
    overflow: hidden;
    position: relative;
    height: 75vh;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
}

.bg-single-image {
    overflow: hidden;
    position: relative;
    height: 75vh;
    background-repeat: no-repeat;
    background-size: cover;
    background-position: center center;
    -webkit-filter: blur(5px);
    filter: blur(5px);
}

.single-image:after {
    display: block;
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    content: "";
    background-color: rgba(0, 0, 0, 0.5);
}

.header-title {
    position: absolute;
    top: 55%;
    text-align: center;
    padding: 15px;
    color: #fff;
    left: 50%;
    -webkit-transform: translate(-50%, -55%);
    -moz-transform: translate(-50%, -55%);
    -ms-transform: translate(-50%, -55%);
    -o-transform: translate(-50%, -55%);
    transform: translate(-50%, -55%);
}

.header-title .posted-date, .header-title .author-meta-by, .header-title .comments-meta {
    color: #fff;
    opacity: 1;
}

.top-header .site-branding-text, .top-header .site-branding-logo {
    text-align: center;
    float: none;
}

.header-site-title {
    font-size: 46px;
    font-size: calc(3vw + 2vh);
    line-height: 1.2;
    text-transform: uppercase;
    font-weight: 800;
}

@keyframes grow{
    0% { transform: translateX(-50%) translateY(-50%) scale(1)}
    50% { transform: translateX(-50%) translateY(-50%) scale(1.2)}
}

#header-image-arrow {
    position: relative;
    margin-top: 30px;
    margin-bottom: 15px;
    width: 100%;
    height: 50px;
}
#header-image-arrow a span:hover {
    opacity: 0.7;
}
#header-image-arrow a span {
    position: absolute;
    top: 0;
    left: 50%;
    width: 38px;
    height: 38px;
    margin-left: -19px;
    border: 1px solid #fff;
    border-radius: 100%;
    box-sizing: border-box;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}
#header-image-arrow a span::after {
    position: absolute;
    top: 50%;
    left: 50%;
    content: '';
    width: 16px;
    height: 16px;
    margin: -12px 0 0 -8px;
    border-left: 1px solid #fff;
    border-bottom: 1px solid #fff;
    -webkit-transform: rotate(-45deg);
    transform: rotate(-45deg);
    box-sizing: border-box;
}
#header-image-arrow a span::before {
    position: absolute;
    top: 0;
    left: 0;
    z-index: -1;
    content: '';
    width: 38px;
    height: 38px;
    box-shadow: 0 0 0 0 rgba(255,255,255,.1);
    border-radius: 100%;
    opacity: 0;
    -webkit-animation: arrow 3s infinite;
    animation: arrow 3s infinite;
    box-sizing: border-box;
}
@-webkit-keyframes arrow {
    0% {
        opacity: 0;
    }
    30% {
        opacity: 1;
    }
    60% {
        box-shadow: 0 0 0 60px rgba(255,255,255,.1);
        opacity: 0;
    }
    100% {
        opacity: 0;
    }
}

.single-image img {
    position: absolute;
    height: auto;
    left: 50%;
    max-width: 1000%;
    min-height: 100%;
    width: auto;
    top: 50%;
    -ms-transform: translateX(-50%) translateY(-50%) scale(1);
    -moz-transform: translateX(-50%) translateY(-50%) scale(1);
    -webkit-transform: translateX(-50%) translateY(-50%) scale(1);
    transform: translateX(-50%) translateY(-50%) scale(1);
    -webkit-animation: grow 30s linear 10ms infinite;
    animation: grow 30s linear 10ms infinite;
    -webkit-transition: all 0.2s ease-in-out;
    transition: all 0.2s ease-in-out;
}
.top-bar-section {
    background-color: #fff;
    border-bottom: 1px solid #f6f6f6;
    color: #334142;
    font-size: 14px;
    padding: 5px 0;
    position: relative;
    z-index: 98;
    display: flex;
}

.top-bar-section .widget, .top-bar-section p {
    margin-bottom: 0;
}

.top-bar-section .widget:nth-child(3n) {
    text-align: right;
}

.top-bar-section .widget:nth-child(3n-1) {
    text-align: center;
}

.transparent-header .top-header {
    top: -71px;
} 

.updated:not(.published) {
    display: none;
}

.widget {
    -moz-hyphens: auto;
    -webkit-hyphens: auto;
    hyphens: auto;
    margin-bottom: 20px;
    position: relative;
    word-wrap: break-word;
}

.widget li > ul {
    padding-left: 15px;
}

.widget ul {
    list-style-type: none;
    padding-left: 0;
}

.widget ul li {
    border-bottom: 1px solid rgba(0,0,0,0.08);
    margin: 4px 0px 0px;
    padding: 0px 0px 4px;
}

.widget ul li:last-child {
    border-bottom: none;
}

.widget-title {
    clear: both;
    display: block;
    font-size: 18px;
    margin-bottom: 5px;
    margin-top: 5px;
    position: relative;
    text-align: left;
    text-transform: uppercase;
    width: 100%;
}

.wp-caption {
    background: #fff;
    border: 1px solid #f0f0f0;
    max-width: 96%;
    padding: 5px 3px 10px;
    text-align: center;
}

.wp-caption img {
    border: 0 none;
    height: auto;
    margin: 0;
    max-width: 98.5%;
    padding: 0;
    width: auto;
}

.wp-caption p.wp-caption-text {
    color: #2b2b2b;
    font-size: 13px;
    line-height: 17px;
    margin: 0;
    padding: 10px 0 0 0;
}

.wp-caption.alignleft {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignnone {
    margin: 5px 20px 20px 0;
}

.wp-caption.alignright {
    margin: 5px 0 20px 20px;
}

@-webkit-keyframes flash {
    0% {
        opacity: .4;
    }

    100% {
        opacity: 1;
    }
}

@keyframes flash {
    0% {
        opacity: .4;
    }

    100% {
        opacity: 1;
    }
}

@keyframes showup {
    0% {
        opacity: 0;
    }

    100% {
        opacity: 1;
    }
}

@media (max-width: 767px) {
    a.cart-contents i.la, .header-cart i, .header-compare i, .header-my-account i, .header-search i, .header-search-icon i, .header-wishlist i {
        font-size: 22px;
        margin-right: 0;
    }

    #menu-categories-menu {
        display: none;
    }

    #menu-categories-menu.dropdown-menu.open {
        display: block;
        position: relative;
        width: 100%;
    }

    #site-navigation {
        height: 0;
        min-height: 0 !important;
        opacity: 0;
        visibility: hidden;
    }

    #theme-menu {
        overflow: hidden;
        z-index: 99999;
    }

    #theme-menu-second .nav > li {
        display: inline-block;
    }

    #theme-menu-second .navbar-right, .header-search-form {
        text-align: center;
    }

    .admin-bar.hc-nav-open {
        margin-top: -46px;
    }

    .admin-bar.hc-nav-open:not(.shrink-header) .hc-offcanvas-nav.nav-open[class*='hc-nav-'] div.nav-container {
        margin-top: 46px;
    }

    .dropdown-menu {
        -webkit-box-shadow: none;
        border-radius: 0;
        border: none;
        box-shadow: none;
        display: block;
        float: none;
        font-size: initial;
        left: auto;
        list-style: none;
        margin: 0;
        min-width: auto;
        padding: 0;
        position: inherit;
        text-align: none;
        top: auto;
    }

    .hc-nav-trigger {
        top: 4px;
        width: 20px;
    }

    .hc-nav-trigger span {
        width: 20px;
    }

    .hc-nav-trigger span, .hc-nav-trigger span::after, .hc-nav-trigger span::before {
        background-color: #5c5c5c;
        height: 2px;
    }

    .hc-nav-trigger span::after {
        bottom: -6px;
    }

    .hc-nav-trigger span::before {
        top: -6px;
    }

    .hc-offcanvas-nav .nav-close-button span::before {
        margin-left: -6px;
    }

    .head-form.visible-xs {
        padding: 15px;
        position: absolute;
        top: 100%;
        width: 100%;
        z-index: 9;
    }

    .header-compare, .header-my-account, .header-search, .header-search-icon i, .header-wishlist {
        padding-right: 3px !important;
    }

    .header-right {
        flex-grow: 1;
        padding-right: 15px;
    }

    .header-search-form {
        font-size: 14px;
    }

    .header-search-form, .navbar-nav.envo-categories-menu, .navbar-right {
        width: 100% !important;
    }

    .header-woonav:not(.woo-on) #second-site-navigation, 
    .header-woonav #second-site-navigation:not(.menu-right-on):not(.menu-cats-on) {
        display: none;
    }

    .heading-row {
        flex-wrap: wrap;
    }

    .js-loaded #site-navigation {
        opacity: 1;
        visibility: visible;
    }

    .main-menu .container {
        display: block !important;
    }

    .menu-button {
        float: right;
        height: 24px;
        margin-left: 10px;
        width: 24px;
    }

    .menu-item .menu-description {
        background: #6B1414;
        border-radius: 1px;
        color: #fff;
        display: inline;
        font-size: 9px;
        font-weight: 700;
        left: inherit;
        line-height: 10px;
        line-height: normal;
        margin: 0 3px;
        margin: 0 5px;
        padding: 2px 4px;
        position: relative;
        top: -3px;
    }

    .menu-item .menu-description:after {
        display: none;
    }

    .mobile-canvas {
        float: left;
    }

    .navbar-default .navbar-brand {
        margin-right: -50px;
    }

    .navbar-nav.envo-categories-menu {
        margin-left: 0px;
    }

    .top-bar-section .widget {
        text-align: center !important;
    }
}

@media (min-width: 600px) and (max-width: 782px) {
    .admin-bar #theme-menu {
        top: 46px;
    }
}

@media (min-width: 768px) {
    li li ul.dropdown-menu {
        left: 100%;
        top: 0;
    }

    li.menu-item-has-children > a {
        padding-right: 25px;
    }

    li.menu-item-has-children>a.dropdown-item:before {
        right: 6px;
    }

    li.menu-item-has-children>a:before {
        content: "\f107";
        font-family: "Line Awesome Free";
        font-size: 15px;
        font-weight: 900;
        margin-left: 10px;
        position: absolute;
        right: 2px;
    }

    ul li ul li.menu-item-has-children>a:before {
        content: "\f105";
    }

    #site-navigation .container {
        padding-left: 0;
        padding-right: 0;
    }

    .alignfull {
        margin-left: calc(50% - 50vw);
        margin-right: calc(50% - 50vw);
        max-width: 100vw;
        width: auto;
    }

    .alignfull img {
        width: 100vw;
    }

    .alignwide {
        margin-left: calc(25% - 25vw);
        margin-right: calc(25% - 25vw);
        max-width: 100vw;
        width: auto;
    }

    .dropdown-menu {
        display: block;
        opacity: 0;
        visibility: hidden;
    }

    .header-heading-shrink .navbar-right {
        margin-right: 0px;
    }

    .header-search-widget {
        width: 75%;
    }
    
    .heading-row .site-heading {
        overflow: hidden;
    }

    .menu-item-has-children li.fa:before {
        top: 6px !important;
    }

    .navbar-center {
        text-align: center;
        width: 100%;
    }

    .navbar-center > li {
        display: inline-block;
        float: none;
    }

    .navbar-default .navbar-nav > .active > a, .navbar-default .navbar-nav > .active > a:focus, .navbar-default .navbar-nav > .active > a:hover, .navbar-default .navbar-nav > .open > a, .navbar-default .navbar-nav > .open > a:focus, .navbar-default .navbar-nav > .open > a:hover {
        background-color: transparent;
    }

    .navbar-default .navbar-nav > .active a:focus, .navbar-default .navbar-nav > .open a:focus {
        background-color: #fff;
        color: #666;
        outline: thin dotted;
    }

    .navbar-nav > li > a {
        -moz-transition: all 0.5s ease-in-out;
        -o-transition: all 0.5s ease-in-out;
        -webkit-transition: all 0.5s ease-in-out;
        transition: all 0.5s ease-in-out;
    }

    .navbar-nav li:hover > .dropdown-menu {
        -moz-transition: all 0.5s ease-in-out;
        -o-transition: all 0.5s ease-in-out;
        -webkit-transition: all 0.5s ease-in-out;
        border-radius: 0;
        opacity: 1;
        transition: all 0.5s ease-in-out;
        visibility: visible;
    }

    .navbar-right li li ul.dropdown-menu {
        left: auto;
        right: 100%;
    }

    .open > .dropdown-menu {
        height: auto;
        opacity: 1;
        visibility: visible;
    }

    .shrink .header-search-widget {
        display: none;
    }

    .wp-block-group__inner-container {
        margin: auto;
        max-width: 85.7143rem;
    }
}
[data-tooltip] {
    cursor: pointer;
    position: relative;
    z-index: 999;
}

[data-tooltip]:after {
    border-left: 5px solid transparent;
    border-right: 5px solid transparent;
    border-top: 5px solid #000;
    border-top: 5px solid hsla(0,0%,20%,0.9);
    bottom: 85%;
    content: " ";
    font-size: 0;
    left: 50%;
    line-height: 0;
    position: absolute;
    transform: translate(-50%,0);
    width: 0;
    z-index: 999;
}

[data-tooltip]:after, [data-tooltip]:before {
    -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=0)";
    filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=0);
    opacity: 0;
    pointer-events: none;
    visibility: hidden;
}

[data-tooltip]:before {
    -moz-border-radius: 3px;
    -webkit-border-radius: 3px;
    background-color: #000;
    background-color: hsla(0,0%,20%,0.9);
    border-radius: 3px;
    bottom: 85%;
    color: #fff;
    content: attr(data-tooltip);
    font-size: 12px;
    left: 50%;
    line-height: 1.1;
    margin-bottom: 5px;
    padding: 4px;
    position: absolute;
    text-align: center;
    transform: translate(-50%,0);
    width: max-content;
    z-index: 999;
}

[data-tooltip]:hover:after, [data-tooltip]:hover:before {
    -ms-filter: "progid: DXImageTransform.Microsoft.Alpha(Opacity=100)";
    filter: progid: DXImageTransform.Microsoft.Alpha(Opacity=100);
    opacity: 1;
    visibility: visible;
}

/* =============================================================
   DragonBridge Renaissance Overrides
   Treasure Coast Renaissance Festival theme
   Palette: Burgundy / Aged Gold / Forest / Parchment / Ink
   ============================================================= */

:root {
    --db-burgundy: #6B1414;
    --db-burgundy-deep: #4A0E0E;
    --db-burgundy-light: #8C2828;
    --db-gold: #C9A961;
    --db-gold-bright: #E5C46A;
    --db-gold-deep: #A88840;
    --db-forest: #1F4A2C;
    --db-forest-deep: #143820;
    --db-parchment: #F5EBD6;
    --db-parchment-light: #FAF4E4;
    --db-parchment-warm: #EFE2C4;
    --db-ink: #2A1810;
    --db-ink-soft: #4A352A;
    --db-shadow: rgba(74, 14, 14, 0.18);
}

/* ---------- Base typography & background ---------- */
body {
    background-color: var(--db-parchment);
    background-image:
        radial-gradient(at 20% 10%, rgba(201, 169, 97, 0.08) 0px, transparent 50%),
        radial-gradient(at 80% 90%, rgba(107, 20, 20, 0.05) 0px, transparent 50%),
        linear-gradient(180deg, var(--db-parchment-light) 0%, var(--db-parchment) 100%);
    color: var(--db-ink);
    font-family: 'Cormorant Garamond', 'EB Garamond', Georgia, 'Times New Roman', serif;
    font-size: 18px;
    font-weight: 400;
    line-height: 1.65;
}

p {
    margin-bottom: 1.2em;
}

/* ---------- Headings ---------- */
h1, h2, h3, h4, h5, h6,
.site-title, .single-title, .entry-title,
.widget-title h3 {
    font-family: 'Cinzel', 'Trajan Pro', Georgia, serif;
    color: var(--db-burgundy);
    font-weight: 700;
    letter-spacing: 0.02em;
    text-transform: none;
}

h1 { font-size: 2.6rem; line-height: 1.15; }
h2 { font-size: 2.05rem; line-height: 1.2; }
h3 { font-size: 1.6rem; line-height: 1.25; }
h4 { font-size: 1.3rem; }
h5 { font-size: 1.1rem; }
h6 { font-size: 0.95rem; letter-spacing: 0.08em; text-transform: uppercase; }

/* Decorative gold double-rule under main headings */
.single-title,
.entry-title,
.page-title,
h1.single-title {
    color: var(--db-burgundy);
    padding-bottom: 0.5em;
    position: relative;
    margin-bottom: 0.8em;
}

.single-title:after,
.entry-title:after,
.page-title:after {
    content: "";
    display: block;
    width: 140px;
    height: 2px;
    background: var(--db-gold);
    box-shadow: 0 4px 0 var(--db-gold);
    margin-top: 0.5em;
}

/* Centered headings for home/singular get fleur-de-lis ornament */
.singular-heading .single-title,
.home-heading .header-site-title,
.text-center .single-title,
.text-center .entry-title {
    text-align: center;
}

.singular-heading .single-title:after,
.text-center .single-title:after,
.text-center .entry-title:after {
    margin-left: auto;
    margin-right: auto;
}

/* Site title in header */
h1.site-title a, .site-title a, p.site-title a {
    color: var(--db-burgundy) !important;
    font-family: 'Cinzel', Georgia, serif;
    font-weight: 700;
    letter-spacing: 0.04em;
    text-transform: uppercase;
}

.header-site-title {
    font-family: 'Cinzel', Georgia, serif !important;
    color: var(--db-gold-bright) !important;
    text-shadow: 0 2px 4px rgba(0,0,0,0.5);
    font-size: 3rem;
    font-weight: 800;
    letter-spacing: 0.05em;
}

.site-description {
    font-family: 'IM Fell English', 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    color: var(--db-gold-bright);
    font-size: 1.3rem;
    letter-spacing: 0.03em;
}

/* ---------- Links ---------- */
a, a:active, a:focus {
    color: var(--db-burgundy);
    transition: color 0.25s ease, border-color 0.25s ease, background-color 0.25s ease;
}

a:hover, a:focus {
    color: var(--db-gold-deep);
    text-decoration: none;
}

/* In-content links get an aged-gold underline that thickens on hover */
.single-entry-summary a,
.post-excerpt a,
.entry-content a,
.widget a:not(.btn):not(.button) {
    border-bottom: 1px dotted var(--db-gold);
    padding-bottom: 1px;
}

.single-entry-summary a:hover,
.post-excerpt a:hover,
.entry-content a:hover,
.widget a:not(.btn):not(.button):hover {
    border-bottom-color: var(--db-burgundy);
    border-bottom-style: solid;
}

/* ---------- Buttons (wax-seal medallion style) ---------- */
button,
input[type="submit"],
input#submit,
a.button,
.btn,
.btn-default,
a.comment-reply-link,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button,
.woocommerce-page button.button,
.woocommerce input.button {
    background-color: var(--db-burgundy) !important;
    border: 2px solid var(--db-gold) !important;
    color: var(--db-gold-bright) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 600 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 12px 28px !important;
    border-radius: 2px !important;
    box-shadow: 0 2px 0 var(--db-burgundy-deep), inset 0 0 0 1px rgba(229, 196, 106, 0.3);
    transition: all 0.25s ease !important;
    cursor: pointer;
}

button:hover,
input[type="submit"]:hover,
input#submit:hover,
a.button:hover,
.btn:hover,
.btn-default:hover,
a.comment-reply-link:hover,
.wp-block-button__link:hover,
.woocommerce a.button:hover,
.woocommerce button.button:hover {
    background-color: var(--db-gold) !important;
    color: var(--db-burgundy-deep) !important;
    border-color: var(--db-burgundy) !important;
    transform: translateY(-1px);
    box-shadow: 0 4px 0 var(--db-burgundy-deep), inset 0 0 0 1px rgba(107, 20, 20, 0.3);
}

button:active,
input[type="submit"]:active {
    transform: translateY(1px);
    box-shadow: 0 0 0 var(--db-burgundy-deep);
}

/* ---------- Top bar ---------- */
.top-bar-section {
    background-color: var(--db-burgundy-deep);
    color: var(--db-gold-bright);
    border-bottom: 2px solid var(--db-gold);
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    padding: 8px 0;
}

.top-bar-section a {
    color: var(--db-gold-bright);
}

.top-bar-section a:hover {
    color: #fff;
}

/* ---------- Site header / navigation ---------- */
.site-header {
    background-color: var(--db-burgundy) !important;
    background-image:
        linear-gradient(180deg, var(--db-burgundy) 0%, var(--db-burgundy-deep) 100%);
    border-bottom: 4px double var(--db-gold);
    padding: 18px 0;
}

.site-header .site-title a,
.site-header h1.site-title a,
.site-header p.site-title a {
    color: var(--db-gold-bright) !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.4);
}

.main-menu {
    background-color: var(--db-burgundy-deep);
    border-top: 1px solid var(--db-gold-deep);
    border-bottom: 3px solid var(--db-gold);
}

.navbar-default {
    background-color: transparent !important;
    border: none !important;
}

#site-navigation .nav.navbar-nav > li > a,
#second-site-navigation .nav.navbar-nav > li > a,
.menu-container ul > li > a {
    color: var(--db-gold-bright) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 500 !important;
    font-size: 0.95rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 18px 18px !important;
    position: relative;
    transition: color 0.25s ease, background-color 0.25s ease;
}

#site-navigation .nav.navbar-nav > li > a:hover,
#site-navigation .nav.navbar-nav > li > a:focus,
#second-site-navigation .nav.navbar-nav > li > a:hover,
.menu-container ul > li > a:hover,
.menu-container ul > li.current-menu-item > a {
    color: #fff !important;
    background-color: rgba(0,0,0,0.18) !important;
}

#site-navigation .nav.navbar-nav > li > a:after,
.menu-container ul > li > a:after {
    content: "";
    position: absolute;
    bottom: 8px;
    left: 50%;
    width: 0;
    height: 2px;
    background: var(--db-gold);
    transition: all 0.3s ease;
    transform: translateX(-50%);
}

#site-navigation .nav.navbar-nav > li > a:hover:after,
#site-navigation .nav.navbar-nav > li.current-menu-item > a:after,
.menu-container ul > li > a:hover:after,
.menu-container ul > li.current-menu-item > a:after {
    width: 60%;
}

/* Dropdown menus */
.dropdown-menu, .menu-container ul ul {
    background-color: var(--db-parchment-light) !important;
    border: 2px solid var(--db-gold) !important;
    border-radius: 0 !important;
    box-shadow: 0 6px 24px var(--db-shadow) !important;
    padding: 8px 0 !important;
}

.dropdown-menu > li > a,
.menu-container ul ul > li > a {
    color: var(--db-ink) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 10px 20px !important;
}

.dropdown-menu > li > a:hover,
.menu-container ul ul > li > a:hover {
    background-color: var(--db-burgundy) !important;
    color: var(--db-gold-bright) !important;
}

/* ---------- Hero / home heading ---------- */
.top-header.home-heading,
.top-header.singular-heading {
    border-bottom: 4px double var(--db-gold);
    position: relative;
}

.top-header .bg-single-image {
    filter: sepia(0.15) saturate(1.05);
}

.top-header.home-heading:after,
.top-header.singular-heading:after {
    content: "❦";
    position: absolute;
    bottom: -18px;
    left: 50%;
    transform: translateX(-50%);
    background: var(--db-parchment);
    color: var(--db-gold-deep);
    font-size: 22px;
    width: 36px;
    height: 36px;
    line-height: 36px;
    text-align: center;
    border: 2px solid var(--db-gold);
    border-radius: 50%;
    z-index: 5;
}

#header-image-arrow a {
    border-color: var(--db-gold-bright);
}

#header-image-arrow a span {
    background-color: var(--db-gold-bright);
}

/* ---------- Articles / cards ---------- */
article.content-article,
.post,
.hentry {
    background: var(--db-parchment-light);
    border: 1px solid var(--db-gold);
    border-top: 4px solid var(--db-burgundy);
    padding: 24px;
    margin-bottom: 30px;
    box-shadow: 0 2px 8px rgba(74, 14, 14, 0.08);
    border-radius: 2px;
    position: relative;
}

article.content-article:before,
.post.hentry:before {
    content: "";
    position: absolute;
    top: 4px;
    left: 4px;
    right: 4px;
    bottom: 4px;
    border: 1px solid rgba(201, 169, 97, 0.3);
    pointer-events: none;
}

.news-thumb {
    margin: -24px -24px 20px -24px;
    border-bottom: 3px solid var(--db-gold);
    overflow: hidden;
}

.entry-title a {
    color: var(--db-burgundy) !important;
}

.entry-title a:hover {
    color: var(--db-gold-deep) !important;
}

/* Meta */
.article-meta,
.entry-footer {
    font-family: 'IM Fell English', 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    color: var(--db-ink-soft);
    font-size: 0.95rem;
    letter-spacing: 0.02em;
}

.article-meta .la,
.entry-footer .la,
.article-meta i,
.entry-footer i {
    color: var(--db-gold-deep);
    margin-right: 4px;
}

.posted-date, .author-meta, .comments-meta {
    margin-right: 18px;
}

/* ---------- Blockquotes ---------- */
blockquote {
    background: var(--db-parchment-warm);
    border-left: 5px solid var(--db-gold);
    border-right: 1px solid var(--db-gold);
    color: var(--db-ink-soft);
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    font-size: 1.25rem;
    line-height: 1.5;
    padding: 22px 28px;
    margin: 24px 0;
    position: relative;
    border-radius: 0;
}

blockquote:before {
    content: "\201C";
    position: absolute;
    top: -10px;
    left: 14px;
    font-family: Georgia, serif;
    font-size: 4.5rem;
    color: var(--db-gold);
    line-height: 1;
    font-style: normal;
}

blockquote p:last-child {
    margin-bottom: 0;
}

blockquote cite {
    display: block;
    margin-top: 0.5em;
    font-size: 0.9rem;
    color: var(--db-burgundy);
    font-style: normal;
    font-family: 'Cinzel', Georgia, serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* ---------- HR dividers with fleur-de-lis ---------- */
hr,
.entry-content hr {
    border: 0;
    height: 24px;
    background: none;
    text-align: center;
    position: relative;
    margin: 30px 0;
    overflow: visible;
}

hr:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 0;
    right: 0;
    height: 1px;
    background: linear-gradient(90deg,
        transparent 0%,
        var(--db-gold-deep) 20%,
        var(--db-gold) 50%,
        var(--db-gold-deep) 80%,
        transparent 100%);
}

hr:after {
    content: "\269C"; /* fleur-de-lis */
    position: relative;
    display: inline-block;
    background: var(--db-parchment);
    color: var(--db-burgundy);
    padding: 0 14px;
    font-size: 20px;
    line-height: 1;
}

/* ---------- Sidebar widgets ---------- */
.widget {
    background: var(--db-parchment-light);
    border: 1px solid var(--db-gold);
    border-top: 3px solid var(--db-burgundy);
    padding: 18px 20px;
    margin-bottom: 26px;
    box-shadow: 0 2px 6px rgba(74, 14, 14, 0.06);
}

.widget-title h3 {
    color: var(--db-burgundy);
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1.1rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
    border-bottom: 2px solid var(--db-gold);
    padding-bottom: 8px;
    margin: 0 0 14px 0;
    position: relative;
}

.widget-title h3:after {
    content: "";
    position: absolute;
    bottom: -2px;
    left: 0;
    width: 40px;
    height: 2px;
    background: var(--db-burgundy);
}

.widget ul {
    list-style: none;
    padding-left: 0;
}

.widget ul li {
    border-bottom: 1px dotted var(--db-gold-deep);
    padding: 8px 0 8px 18px;
    position: relative;
}

.widget ul li:before {
    content: "\2766"; /* floral heart */
    position: absolute;
    left: 0;
    top: 8px;
    color: var(--db-gold-deep);
    font-size: 0.85rem;
}

.widget ul li:last-child {
    border-bottom: none;
}

/* ---------- Pagination ---------- */
nav.navigation.pagination .nav-links .page-numbers,
nav.navigation.pagination .nav-links a {
    background-color: var(--db-parchment-light) !important;
    border: 1px solid var(--db-gold) !important;
    color: var(--db-burgundy) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 600 !important;
    padding: 8px 14px !important;
    margin: 0 3px !important;
    transition: all 0.25s ease;
}

nav.navigation.pagination .nav-links .page-numbers.current,
nav.navigation.pagination .nav-links a:hover {
    background-color: var(--db-burgundy) !important;
    color: var(--db-gold-bright) !important;
    border-color: var(--db-burgundy) !important;
}

/* ---------- Post navigation ---------- */
.post-navigation {
    border-top: 2px solid var(--db-gold);
    border-bottom: 2px solid var(--db-gold);
    padding: 18px 0;
    margin: 30px 0;
}

.nav-subtitle {
    color: var(--db-gold-deep);
    font-family: 'IM Fell English', Georgia, serif;
    font-style: italic;
    font-size: 0.85rem;
    letter-spacing: 0.08em;
    text-transform: uppercase;
}

.nav-title {
    font-family: 'Cinzel', Georgia, serif;
    color: var(--db-burgundy);
    font-weight: 600;
}

/* ---------- Forms ---------- */
input[type="text"],
input[type="email"],
input[type="url"],
input[type="password"],
input[type="search"],
input[type="number"],
input[type="tel"],
input[type="date"],
textarea, select {
    background-color: var(--db-parchment-light) !important;
    border: 1px solid var(--db-gold) !important;
    color: var(--db-ink) !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1rem !important;
    padding: 10px 14px !important;
    border-radius: 2px !important;
    transition: border-color 0.25s ease, box-shadow 0.25s ease;
}

input[type="text"]:focus,
input[type="email"]:focus,
input[type="url"]:focus,
input[type="password"]:focus,
input[type="search"]:focus,
textarea:focus, select:focus {
    border-color: var(--db-burgundy) !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(201, 169, 97, 0.25) !important;
}

label {
    font-family: 'Cinzel', Georgia, serif;
    color: var(--db-burgundy);
    font-weight: 600;
    font-size: 0.85rem;
    letter-spacing: 0.06em;
    text-transform: uppercase;
}

/* Header search button keeps the burgundy fill but gets gold border */
button.header-search-button {
    border: 1px solid var(--db-gold) !important;
}

/* ---------- Comments ---------- */
.comments-area {
    margin-top: 40px;
    padding-top: 24px;
    border-top: 4px double var(--db-gold);
}

.comments-title,
.comment-reply-title {
    color: var(--db-burgundy);
    font-family: 'Cinzel', Georgia, serif;
    border-bottom: 1px solid var(--db-gold);
    padding-bottom: 8px;
}

.comment-list .comment,
.comment-list .pingback {
    border: 1px solid var(--db-gold);
    background: var(--db-parchment-light);
    padding: 16px;
    margin-bottom: 18px;
    border-radius: 2px;
}

.comment-author .fn,
.comment-author cite {
    font-family: 'Cinzel', Georgia, serif;
    color: var(--db-burgundy);
    font-weight: 600;
}

.comment-metadata {
    font-family: 'IM Fell English', Georgia, serif;
    font-style: italic;
    color: var(--db-ink-soft);
    font-size: 0.85rem;
}

/* ---------- Tables ---------- */
table {
    border-collapse: collapse;
    background: var(--db-parchment-light);
    border: 1px solid var(--db-gold);
}

th {
    background: var(--db-burgundy);
    color: var(--db-gold-bright);
    font-family: 'Cinzel', Georgia, serif;
    letter-spacing: 0.06em;
    text-transform: uppercase;
    font-weight: 600;
    padding: 10px 14px;
    border: 1px solid var(--db-gold-deep);
}

td {
    border: 1px solid rgba(201, 169, 97, 0.5);
    padding: 8px 14px;
}

/* ---------- Author box ---------- */
.postauthor-container {
    background: var(--db-parchment-warm);
    border: 1px solid var(--db-gold);
    border-left: 5px solid var(--db-burgundy);
    padding: 20px;
    margin-top: 30px;
    border-radius: 2px;
}

.postauthor-title h4 {
    color: var(--db-burgundy);
    font-family: 'Cinzel', Georgia, serif;
    margin-top: 0;
}

/* ---------- Breadcrumbs ---------- */
#breadcrumbs {
    font-family: 'IM Fell English', 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    color: var(--db-ink-soft);
    font-size: 0.95rem;
    letter-spacing: 0.04em;
}

#breadcrumbs a {
    color: var(--db-burgundy);
    border-bottom: 1px dotted var(--db-gold);
}

#breadcrumbs a:hover {
    color: var(--db-gold-deep);
}

/* ---------- Footer ---------- */
#content-footer-section {
    background-color: var(--db-burgundy-deep);
    background-image:
        linear-gradient(180deg, var(--db-burgundy) 0%, var(--db-burgundy-deep) 100%);
    color: var(--db-parchment);
    border-top: 4px double var(--db-gold);
    padding: 48px 0 32px;
    position: relative;
}

#content-footer-section:before {
    content: "";
    position: absolute;
    top: -3px;
    left: 0;
    right: 0;
    height: 1px;
    background: var(--db-gold-bright);
    opacity: 0.4;
}

#content-footer-section .widget {
    background: transparent;
    border: none;
    border-top: 1px solid rgba(201, 169, 97, 0.25);
    padding: 16px 0;
    box-shadow: none;
}

#content-footer-section .widget-title h3 {
    color: var(--db-gold-bright);
    border-bottom-color: rgba(201, 169, 97, 0.4);
}

#content-footer-section .widget-title h3:after {
    background: var(--db-gold);
}

#content-footer-section,
#content-footer-section p,
#content-footer-section li,
#content-footer-section .widget ul li {
    color: var(--db-parchment);
}

#content-footer-section a {
    color: var(--db-gold-bright);
    border-bottom-color: rgba(201, 169, 97, 0.4);
}

#content-footer-section a:hover {
    color: #fff;
    border-bottom-color: var(--db-gold-bright);
}

#content-footer-section .widget ul li:before {
    color: var(--db-gold);
}

#content-footer-section input[type="text"],
#content-footer-section input[type="email"],
#content-footer-section textarea {
    background-color: rgba(245, 235, 214, 0.06) !important;
    border-color: rgba(201, 169, 97, 0.5) !important;
    color: var(--db-parchment) !important;
}

/* Footer credits bar */
.footer-credits {
    background-color: var(--db-burgundy-deep);
    color: var(--db-gold-bright);
    border-top: 1px solid var(--db-gold);
    padding: 16px 0;
    font-family: 'IM Fell English', 'Cormorant Garamond', Georgia, serif;
    font-style: italic;
    text-align: center;
}

.footer-credits a {
    color: var(--db-gold-bright);
}

.footer-credits a:hover {
    color: #fff;
}

.footer-credits-text ul.list-inline > li {
    display: inline-block;
    padding: 0 12px;
    border-right: 1px solid rgba(201, 169, 97, 0.4);
}

.footer-credits-text ul.list-inline > li:last-child {
    border-right: none;
}

/* ---------- Search ---------- */
.search-form input[type="search"] {
    background: var(--db-parchment-light) !important;
}

/* ---------- Code & pre ---------- */
code, kbd, samp, pre {
    font-family: 'Courier New', Courier, monospace;
    background: var(--db-parchment-warm);
    color: var(--db-burgundy-deep);
    border: 1px solid var(--db-gold);
    padding: 1px 5px;
    border-radius: 2px;
}

pre {
    padding: 14px 18px;
    overflow-x: auto;
}

/* ---------- WooCommerce touch-ups ---------- */
.woocommerce span.onsale {
    background-color: var(--db-forest) !important;
    color: var(--db-gold-bright) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    letter-spacing: 0.06em !important;
    border: 1px solid var(--db-gold);
    text-transform: uppercase;
}

.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    color: var(--db-burgundy) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
}

.woocommerce ul.products li.product .woocommerce-loop-product__title {
    font-family: 'Cinzel', Georgia, serif !important;
    color: var(--db-burgundy);
}

.woocommerce-message,
.woocommerce-info,
.woocommerce-error {
    background: var(--db-parchment-light) !important;
    border-top-color: var(--db-gold) !important;
    color: var(--db-ink) !important;
}

/* ---------- 404 page ---------- */
.error-404 .page-title {
    font-size: 3rem;
}

.error-404 {
    text-align: center;
    padding: 40px 20px;
}

/* ---------- Mobile menu button ---------- */
.menu-button .toggle.menu-panel {
    background: var(--db-burgundy-deep);
    border: 2px solid var(--db-gold);
}

.menu-button .toggle.menu-panel span,
.menu-button .toggle.menu-panel span:before,
.menu-button .toggle.menu-panel span:after {
    background-color: var(--db-gold-bright);
}

/* ---------- Off-canvas nav theming (hc-offcanvas-nav) ---------- */
.hc-offcanvas-nav .nav-container,
.hc-offcanvas-nav .nav-wrapper {
    background: var(--db-burgundy-deep) !important;
    color: var(--db-gold-bright) !important;
}

.hc-offcanvas-nav ul li a {
    color: var(--db-gold-bright) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid rgba(201, 169, 97, 0.2) !important;
}

.hc-offcanvas-nav ul li a:hover {
    background: var(--db-burgundy) !important;
    color: #fff !important;
}

/* ---------- Selection ---------- */
::selection {
    background-color: var(--db-gold);
    color: var(--db-burgundy-deep);
}

::-moz-selection {
    background-color: var(--db-gold);
    color: var(--db-burgundy-deep);
}

/* ---------- Skip link ---------- */
.skip-link:focus {
    background: var(--db-burgundy) !important;
    color: var(--db-gold-bright) !important;
    border: 2px solid var(--db-gold) !important;
}

/* ---------- Responsive sizing tweaks ---------- */
@media (max-width: 768px) {
    body { font-size: 17px; }
    h1 { font-size: 2.1rem; }
    h2 { font-size: 1.7rem; }
    h3 { font-size: 1.4rem; }
    .header-site-title { font-size: 2.1rem; }
    #site-navigation .nav.navbar-nav > li > a,
    .menu-container ul > li > a {
        padding: 12px 14px !important;
    }
    article.content-article,
    .post,
    .hentry {
        padding: 18px;
    }
    .news-thumb {
        margin: -18px -18px 16px -18px;
    }
}

/* ---------- Print ---------- */
@media print {
    body { background: #fff; color: #000; }
    .site-header, #content-footer-section, .footer-credits { display: none; }
}

/* =============================================================
   DragonBridge — Compact Header & Heraldic Flourishes
   ============================================================= */

/* ---------- Slim Page Header ----------
   Was 75vh; reduced to a narrow heraldic banner. */
.top-header,
.top-header.home-heading,
.top-header.singular-heading,
.top-header .single-image,
.top-header .bg-single-image,
.top-header.home-heading .single-image,
.top-header.singular-heading .single-image,
.top-header .custom-header-media,
.top-header .custom-header-media .single-image,
.top-header .custom-header-media .bg-single-image {
    height: 240px !important;
    min-height: 240px !important;
    max-height: 240px !important;
}

.top-header .single-image img {
    /* Disable the slow Ken-Burns zoom on the slim banner — looks odd at this height */
    animation: none !important;
    -webkit-animation: none !important;
    object-fit: cover;
    object-position: center;
}

/* Tone down the previous heavy blur on the background image */
.top-header .bg-single-image {
    filter: blur(2px) sepia(0.18) saturate(1.05) brightness(0.85);
    -webkit-filter: blur(2px) sepia(0.18) saturate(1.05) brightness(0.85);
}

/* Darker, parchment-tinted overlay so heading text stays legible */
.top-header .single-image:after {
    background:
        radial-gradient(ellipse at center, rgba(74,14,14,0.35) 0%, rgba(20,10,10,0.65) 100%);
}

/* Pull the title up since the header is now short */
.top-header .header-title {
    top: 50%;
    transform: translate(-50%, -50%);
    -webkit-transform: translate(-50%, -50%);
    padding: 10px 24px;
    width: 100%;
    max-width: 900px;
}

.top-header .single-title,
.top-header .header-site-title {
    font-size: clamp(1.8rem, 3.4vw, 2.6rem) !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    text-shadow: 0 2px 6px rgba(0,0,0,0.55);
}

.top-header .site-description {
    font-size: clamp(0.95rem, 1.4vw, 1.15rem);
    margin-top: 6px;
    text-shadow: 0 1px 3px rgba(0,0,0,0.55);
}

/* Hide the scroll-down arrow — pointless on a short banner */
.top-header #header-image-arrow {
    display: none;
}

/* Singular post titles below their featured image get gold underline only,
   not the heavy ornament that was floating off the banner */
.top-header .header-title .single-title:after {
    width: 90px;
    height: 1px;
    box-shadow: 0 3px 0 var(--db-gold);
    background: var(--db-gold-bright);
    opacity: 0.9;
}

/* Reposition the medallion seal so it sits neatly on the new banner edge */
.top-header.home-heading:after,
.top-header.singular-heading:after {
    bottom: -16px;
    width: 32px;
    height: 32px;
    line-height: 30px;
    font-size: 18px;
}

@media (max-width: 768px) {
    .top-header,
    .top-header.home-heading,
    .top-header.singular-heading,
    .top-header .single-image,
    .top-header .bg-single-image,
    .top-header .custom-header-media,
    .top-header .custom-header-media .single-image,
    .top-header .custom-header-media .bg-single-image {
        height: 160px !important;
        min-height: 160px !important;
        max-height: 160px !important;
    }
    .top-header .single-title,
    .top-header .header-site-title {
        font-size: clamp(1.3rem, 5vw, 1.7rem) !important;
    }
}

/* =============================================================
   Heraldic & Dragon Flourishes
   ============================================================= */

/* ---------- Dragon scale texture (subtle, on dark surfaces) ----------
   Tiny SVG scales tiled at low opacity. Used on the navbar and footer
   so the dark burgundy fields read as etched/embossed rather than flat. */
.site-header,
.main-menu,
#content-footer-section,
.footer-credits {
    background-image:
        linear-gradient(180deg, var(--db-burgundy) 0%, var(--db-burgundy-deep) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='0.6' stroke-opacity='0.18' d='M0,14 Q7,4 14,14 Q21,4 28,14 M-14,28 Q-7,18 0,28 Q7,18 14,28 Q21,18 28,28 Q35,18 42,28 M14,0 Q21,-10 28,0'/%3E%3C/svg%3E");
    background-blend-mode: normal, overlay;
}

.main-menu {
    background-image:
        linear-gradient(180deg, var(--db-burgundy-deep) 0%, #2D0808 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='0.6' stroke-opacity='0.15' d='M0,14 Q7,4 14,14 Q21,4 28,14 M-14,28 Q-7,18 0,28 Q7,18 14,28 Q21,18 28,28 Q35,18 42,28 M14,0 Q21,-10 28,0'/%3E%3C/svg%3E");
}

/* ---------- Heraldic banner ribbon on hero ----------
   Dragon-silhouette watermark behind the page title, plus golden
   left/right scrollwork brackets so the title reads like a tournament card. */
.top-header.singular-heading .header-title:before,
.top-header.home-heading .header-title:before {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    width: 240px;
    height: 140px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100'%3E%3Cpath fill='%23C9A961' fill-opacity='0.18' d='M180,52 C176,42 166,40 156,44 L150,38 L146,46 C134,40 118,42 108,50 C96,46 80,50 70,58 C58,54 44,58 34,64 C28,60 20,62 16,68 L10,60 L22,52 L14,46 L26,48 C32,38 46,36 56,40 C66,30 80,30 90,38 C100,30 115,30 125,36 C140,30 158,32 174,38 L178,34 L184,44 Z M84,42 L92,38 L94,46 Z M52,56 L60,55 L57,62 Z'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
    background-position: center;
    z-index: 0;
    pointer-events: none;
}

.top-header .header-title > * {
    position: relative;
    z-index: 1;
}

/* Scrollwork brackets on either side of the title */
.top-header .header-title .single-title,
.top-header .header-title .header-site-title {
    display: inline-block;
    position: relative;
    padding: 0 50px;
}

.top-header .header-title .single-title:before,
.top-header .header-title .header-site-title:before {
    content: "❦";
    position: absolute;
    left: 8px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--db-gold-bright);
    font-size: 0.55em;
    opacity: 0.85;
    text-shadow: 0 1px 3px rgba(0,0,0,0.5);
}

.top-header .header-title .single-title:after,
.top-header .header-title .header-site-title:after {
    display: none; /* override the underline rule on banner titles */
}

.top-header .header-title:after {
    content: "❦";
    position: absolute;
    right: 50px;
    top: 50%;
    transform: translateY(-50%);
    color: var(--db-gold-bright);
    font-size: 1rem;
    opacity: 0.85;
    text-shadow: 0 1px 3px rgba(0,0,0,0.5);
    display: none; /* shown by scrollwork below */
}

@media (max-width: 768px) {
    .top-header .header-title .single-title,
    .top-header .header-title .header-site-title {
        padding: 0 24px;
    }
}

/* ---------- Article cards: gold corner brackets ----------
   Small heraldic L-brackets in each corner — like an illuminated page. */
article.content-article,
.post.hentry,
.hentry {
    overflow: hidden; /* keep brackets clipped to the card */
}

article.content-article > .card-corner,
.hentry > .card-corner { display: none; } /* future-proof if a theme adds them */

article.content-article:after,
.post.hentry:after,
.hentry:after {
    content: "";
    position: absolute;
    top: 10px;
    right: 10px;
    width: 22px;
    height: 22px;
    border-top: 2px solid var(--db-gold);
    border-right: 2px solid var(--db-gold);
    opacity: 0.85;
    pointer-events: none;
}

article.content-article > .news-thumb + *:first-of-type:before,
article.content-article .single-head:before {
    content: "";
    position: absolute;
    bottom: 10px;
    left: 10px;
    width: 22px;
    height: 22px;
    border-bottom: 2px solid var(--db-gold);
    border-left: 2px solid var(--db-gold);
    opacity: 0.85;
    pointer-events: none;
}

/* ---------- Drop-cap for first letter of article content ---------- */
.single-entry-summary > p:first-of-type:first-letter,
.entry-content > p:first-of-type:first-letter {
    float: left;
    font-family: 'Cinzel', 'IM Fell English', Georgia, serif;
    font-size: 4.2rem;
    line-height: 0.85;
    font-weight: 700;
    color: var(--db-burgundy);
    padding: 6px 12px 0 0;
    margin-top: 4px;
    text-shadow: 1px 1px 0 var(--db-gold);
}

/* ---------- Banner-ribbon style for tags & categories ----------
   Cloth-banner notches on the right edge. */
.tags-links a,
.cat-links a,
.entry-meta .tags-links a,
.entry-meta .cat-links a {
    display: inline-block;
    background: var(--db-forest);
    color: var(--db-gold-bright) !important;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.75rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    padding: 4px 14px 4px 12px;
    margin: 2px 8px 2px 0;
    border: 1px solid var(--db-gold);
    border-bottom: none;
    clip-path: polygon(0 0, 100% 0, 92% 50%, 100% 100%, 0 100%);
    transition: background-color 0.25s ease;
}

.tags-links a:hover,
.cat-links a:hover {
    background: var(--db-burgundy) !important;
    color: #fff !important;
}

.cat-links a {
    background: var(--db-burgundy);
}

.cat-links a:hover {
    background: var(--db-forest) !important;
}

/* ---------- Section divider with crossed swords ---------- */
.entry-content hr.is-style-default,
.entry-content hr.wp-block-separator,
.swords-divider {
    height: 36px;
}

.entry-content hr.is-style-default:after,
.entry-content hr.wp-block-separator:after,
.swords-divider:after {
    content: "\2694"; /* ⚔ crossed swords */
    font-size: 22px;
    color: var(--db-burgundy);
    padding: 0 16px;
    background: var(--db-parchment);
}

/* ---------- Widget titles: crown ornament ---------- */
.widget-title h3:before {
    content: "\265B"; /* ♛ crown */
    color: var(--db-gold-deep);
    margin-right: 8px;
    font-size: 0.95em;
    opacity: 0.85;
}

/* In the dark footer, use gold-bright */
#content-footer-section .widget-title h3:before {
    color: var(--db-gold-bright);
    opacity: 0.9;
}

/* ---------- Featured image gold corner brackets ---------- */
.news-thumb {
    position: relative;
}

.news-thumb:before,
.news-thumb:after {
    content: "";
    position: absolute;
    width: 28px;
    height: 28px;
    pointer-events: none;
    z-index: 4;
}

.news-thumb:before {
    top: 8px;
    left: 8px;
    border-top: 3px solid var(--db-gold);
    border-left: 3px solid var(--db-gold);
}

.news-thumb:after {
    bottom: 8px;
    right: 8px;
    border-bottom: 3px solid var(--db-gold);
    border-right: 3px solid var(--db-gold);
}

/* ---------- Read-more / "continue reading" with dragon-tail accent ---------- */
.more-link,
a.more-link {
    display: inline-block;
    position: relative;
    background: var(--db-burgundy) !important;
    color: var(--db-gold-bright) !important;
    font-family: 'Cinzel', Georgia, serif !important;
    text-transform: uppercase;
    letter-spacing: 0.12em;
    font-size: 0.85rem;
    padding: 10px 28px 10px 22px;
    border: 2px solid var(--db-gold) !important;
    border-bottom: none;
    margin-top: 14px;
    clip-path: polygon(0 0, 100% 0, 92% 100%, 0 100%);
}

.more-link:after {
    content: " \276F"; /* ❯ */
    margin-left: 8px;
    color: var(--db-gold);
}

.more-link:hover {
    background: var(--db-gold) !important;
    color: var(--db-burgundy-deep) !important;
}

/* ---------- Logo / site-title: dragon flanking the wordmark on header ----------
   Hidden if the logo image is set; visible when only the text title shows. */
.site-header .site-branding-text:not(:empty):before,
.site-header .site-branding-text:not(:empty):after {
    content: "\1F409"; /* 🐉 dragon */
    color: var(--db-gold-bright);
    font-size: 1.4rem;
    vertical-align: middle;
    margin: 0 12px;
    opacity: 0.7;
    filter: drop-shadow(0 1px 2px rgba(0,0,0,0.5));
}

/* When a logo image is present, the WP markup wraps a custom-logo-link;
   in that case hide the flanking dragons to avoid double branding. */
.site-header .site-branding-logo .custom-logo-link ~ * .site-branding-text:before,
.site-header .site-branding-logo:has(.custom-logo-link) ~ .site-branding-text:before,
.site-header .site-branding-logo:has(.custom-logo-link) ~ .site-branding-text:after {
    content: none;
}

/* ---------- Blockquote: dragon-flame opening flourish ----------
   Replaces the plain quote mark with a small flame/scroll glyph. */
blockquote:before {
    content: "\269C"; /* fleur-de-lis */
    font-family: 'Cinzel', Georgia, serif;
    font-size: 2.2rem;
    top: 8px;
    left: 18px;
    color: var(--db-gold-deep);
    opacity: 0.85;
}

/* ---------- Footer: signature ornament centered above credits ---------- */
.footer-credits {
    position: relative;
}

.footer-credits:before {
    content: "❦  \2694  ❦"; /* fleur · swords · fleur */
    display: block;
    text-align: center;
    color: var(--db-gold);
    font-size: 1.1rem;
    letter-spacing: 0.6em;
    margin-bottom: 10px;
    opacity: 0.85;
}

/* ---------- Page-wrap parchment vignette ----------
   Tighter at the edges, brighter in the middle — looks like aged paper. */
.page-wrap {
    background:
        radial-gradient(ellipse at top, rgba(255,255,255,0.5) 0%, rgba(245,235,214,0) 50%),
        radial-gradient(ellipse at bottom, rgba(74,14,14,0.05) 0%, rgba(245,235,214,0) 60%);
}

/* ---------- Pagination: dragon-tail current-page indicator ---------- */
nav.navigation.pagination .nav-links .page-numbers.current {
    position: relative;
}

nav.navigation.pagination .nav-links .page-numbers.current:after {
    content: "";
    position: absolute;
    bottom: -6px;
    left: 50%;
    transform: translateX(-50%);
    width: 0;
    height: 0;
    border-left: 6px solid transparent;
    border-right: 6px solid transparent;
    border-top: 6px solid var(--db-gold);
}

/* ---------- Comment reply title: small dragon glyph ---------- */
.comments-title:before,
.comment-reply-title:before {
    content: "\1F409"; /* 🐉 */
    margin-right: 10px;
    opacity: 0.75;
    font-size: 0.9em;
    filter: grayscale(0.2);
}

/* ---------- Print: hide all the decorative flair ---------- */
@media print {
    article.content-article:after,
    .news-thumb:before,
    .news-thumb:after,
    .footer-credits:before,
    .widget-title h3:before,
    .top-header .header-title:before { display: none !important; }
}

/* =============================================================
   DragonBridge — Bolder Menu, Sticky Header, Logo Scale, A11y
   ============================================================= */

/* ---------- Base typography: larger, more readable body text ---------- */
html {
    font-size: 17px;            /* root: bumps rem-based sizing across the theme */
    scroll-padding-top: 96px;   /* anchors clear the sticky header */
}

body {
    font-size: 1.125rem;        /* ~19px on desktop */
    line-height: 1.75;
    color: var(--db-ink);
}

p,
.entry-content,
.single-entry-summary,
.post-excerpt {
    font-size: 1.125rem;
    line-height: 1.75;
    letter-spacing: 0.005em;
}


.single-entry-summary p,
.entry-content p {
    margin-bottom: 1.25em;
}

li {
    line-height: 1.7;
}

/* Restore slightly tighter sizing inside dense UI surfaces */
.widget li,
.article-meta,
.entry-footer,
.footer-credits,
.top-bar-section,
.comment-metadata,
nav.navigation.pagination {
    font-size: 1rem;
}

/* Heading sizes nudged up to match the larger body */
h1, h1.single-title { font-size: clamp(2rem, 3.4vw, 2.85rem); }
h2 { font-size: clamp(1.6rem, 2.6vw, 2.15rem); }
h3 { font-size: clamp(1.3rem, 2vw, 1.7rem); }
h4 { font-size: 1.35rem; }
h5 { font-size: 1.15rem; }

/* ---------- Accessibility: focus rings, skip link, targets ---------- */

/* Strong visible focus ring on every interactive element.
   Uses :focus-visible so it only appears for keyboard users. */
a:focus-visible,
button:focus-visible,
input:focus-visible,
select:focus-visible,
textarea:focus-visible,
[tabindex]:focus-visible,
.btn:focus-visible {
    outline: 3px solid var(--db-gold-bright) !important;
    outline-offset: 3px !important;
    box-shadow: 0 0 0 5px rgba(74, 14, 14, 0.35) !important;
    border-radius: 2px;
}

/* Remove the default thin-dotted focus that the base theme set */
a:focus,
.dropdown-toggle:focus {
    outline: none;
}

/* Skip-link: hidden offscreen by default, prominent when focused */
.skip-link.screen-reader-text:focus,
a.skip-link:focus {
    position: fixed !important;
    top: 12px !important;
    left: 12px !important;
    clip: auto !important;
    clip-path: none !important;
    width: auto !important;
    height: auto !important;
    z-index: 100000 !important;
    background: var(--db-burgundy) !important;
    color: var(--db-gold-bright) !important;
    border: 3px solid var(--db-gold) !important;
    padding: 14px 22px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    box-shadow: 0 6px 18px rgba(0,0,0,0.35) !important;
    border-radius: 2px !important;
}

/* Minimum 44×44 touch targets on primary interactive elements */
button,
input[type="submit"],
.btn,
a.button,
.wp-block-button__link,
.more-link,
nav.navigation.pagination .nav-links .page-numbers {
    min-height: 44px;
    display: inline-flex;
    align-items: center;
    justify-content: center;
}

/* In-content link contrast bump (burgundy on parchment is ~10:1 — strong) */
.single-entry-summary a,
.entry-content a,
.post-excerpt a {
    color: var(--db-burgundy-deep);
    font-weight: 600;
    border-bottom: 2px solid var(--db-gold);
    padding-bottom: 1px;
}

.single-entry-summary a:hover,
.entry-content a:hover,
.post-excerpt a:hover {
    color: #fff;
    background: var(--db-burgundy);
    border-bottom-color: var(--db-burgundy);
}

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

/* ---------- Sticky page header on desktop ---------- */

@media (min-width: 992px) {
    /* Default (busnav) layout: the whole .site-header carries the menu — stick it. */
    .site-header.business-heading {
        position: sticky;
        top: 0;
        z-index: 1000;
        backdrop-filter: blur(2px);
        -webkit-backdrop-filter: blur(2px);
        box-shadow: 0 4px 14px rgba(74, 14, 14, 0.25);
        will-change: transform;
        transition: padding 0.25s ease, box-shadow 0.25s ease;
    }

    /* Woo (woonav) layout: site-header is logo-only above and .main-menu is the nav.
       Stick the menu so the navigation is always reachable; let the branding bar
       scroll away to reclaim space. */
    .site-header.woo-heading + .main-menu,
    .main-menu {
        position: sticky;
        top: 0;
        z-index: 999;
        box-shadow: 0 4px 14px rgba(74, 14, 14, 0.25);
    }
}

/* When the header sticks, give the page a small offset so content doesn't
   slide under it before the user scrolls. Sticky handles this natively. */

/* ---------- Logo scaling: fits cleanly inside the menu bar ---------- */

.site-branding-logo {
    display: flex;
    align-items: center;
    line-height: 1;
}

.site-branding-logo .custom-logo-link {
    display: inline-flex;
    align-items: center;
    padding: 4px 0;
}

.site-branding-logo img.custom-logo,
.site-branding-logo a img,
.site-branding-logo img {
    height: auto;
    max-height: 64px;
    width: auto;
    max-width: 240px;
    display: block;
    transition: max-height 0.25s ease;
}

@media (min-width: 992px) {
    .site-branding-logo img.custom-logo,
    .site-branding-logo a img,
    .site-branding-logo img {
        max-height: 72px;
        max-width: 280px;
    }
}

@media (max-width: 768px) {
    .site-branding-logo img.custom-logo,
    .site-branding-logo a img,
    .site-branding-logo img {
        max-height: 52px;
        max-width: 180px;
    }
}

/* Site-title text when no image logo is uploaded — scale alongside */
.site-header .site-branding-text .site-title a,
.site-header h1.site-title a,
.site-header p.site-title a {
    font-size: clamp(1.4rem, 2.2vw, 1.8rem);
    line-height: 1.1;
    display: inline-block;
    padding: 6px 0;
}

/* Tighten the heading row so logo + menu sit on the same baseline */
.site-header .heading-row {
    display: flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 12px;
    padding: 8px 0;
}

.site-header .site-heading {
    display: flex;
    align-items: center;
    gap: 12px;
}

.site-header .header-right,
.site-header .menu-heading {
    display: flex;
    align-items: center;
    margin-left: auto;
}

/* ---------- Bolder, easier-to-read menu ---------- */

#site-navigation .nav.navbar-nav > li > a,
#second-site-navigation .nav.navbar-nav > li > a,
.menu-container ul > li > a,
.navbar-nav > li > a {
    color: #FFF3D2 !important;                  /* warm near-white — ~13:1 on burgundy */
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;                /* bolder */
    font-size: 1.05rem !important;              /* larger */
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    padding: 20px 20px !important;              /* roomier tap target */
    line-height: 1.2 !important;
    text-shadow: 0 1px 2px rgba(0,0,0,0.45);
    border-radius: 2px;
    transition: color 0.2s ease, background-color 0.2s ease;
}

/* Hover & current page: brighter + clearer underline */
#site-navigation .nav.navbar-nav > li > a:hover,
#site-navigation .nav.navbar-nav > li > a:focus,
#site-navigation .nav.navbar-nav > li.current-menu-item > a,
#site-navigation .nav.navbar-nav > li.current-menu-parent > a,
#site-navigation .nav.navbar-nav > li.current-menu-ancestor > a,
#second-site-navigation .nav.navbar-nav > li > a:hover,
#second-site-navigation .nav.navbar-nav > li > a:focus,
.menu-container ul > li > a:hover,
.menu-container ul > li > a:focus,
.menu-container ul > li.current-menu-item > a {
    color: #FFFFFF !important;
    background-color: rgba(229, 196, 106, 0.16) !important;   /* gold wash */
}

/* Thicker, more visible underline indicator */
#site-navigation .nav.navbar-nav > li > a:after,
.menu-container ul > li > a:after {
    height: 3px;
    bottom: 10px;
    background: var(--db-gold-bright);
    border-radius: 1px;
}

#site-navigation .nav.navbar-nav > li > a:hover:after,
#site-navigation .nav.navbar-nav > li.current-menu-item > a:after,
#site-navigation .nav.navbar-nav > li.current-menu-parent > a:after,
.menu-container ul > li > a:hover:after,
.menu-container ul > li.current-menu-item > a:after {
    width: 70%;
}

/* Dropdown items: also bolder & roomier */
.dropdown-menu > li > a,
.menu-container ul ul > li > a {
    color: var(--db-ink) !important;
    font-weight: 600 !important;
    font-size: 0.95rem !important;
    letter-spacing: 0.05em !important;
    padding: 12px 22px !important;
    min-height: 44px;
}

.dropdown-menu > li > a:hover,
.dropdown-menu > li > a:focus,
.menu-container ul ul > li > a:hover,
.menu-container ul ul > li > a:focus {
    background-color: var(--db-burgundy) !important;
    color: #FFF3D2 !important;
}

/* Caret indicator for items with sub-menus */
.nav.navbar-nav > li.menu-item-has-children > a:after,
.menu-container ul > li.menu-item-has-children > a:after {
    content: " \25BE";
    font-size: 0.85em;
    margin-left: 6px;
    opacity: 0.85;
}

/* Don't apply the caret to the gold underline indicator (different :after) —
   the earlier rule uses the same pseudo. Use a span workaround: scope the caret
   to be appended via content + margin on the *link*, while the underline is
   the link's own ::after. Conflict resolution: keep the underline rule below
   override-priority by making the caret a real character in the link text. */
.nav.navbar-nav > li.menu-item-has-children > a:after,
.menu-container ul > li.menu-item-has-children > a:after {
    /* override: use bottom underline only — the caret would conflict with
       the underline pseudo. Disable the caret pseudo and rely on the
       underline as the affordance. */
    content: "";
}

/* ---------- Mobile menu toggle: bigger, bolder, clearer ---------- */
.menu-button .toggle.menu-panel {
    width: 48px;
    height: 48px;
    padding: 10px;
    border-radius: 4px;
}

.menu-button .toggle.menu-panel span,
.menu-button .toggle.menu-panel span:before,
.menu-button .toggle.menu-panel span:after {
    height: 3px;
    background-color: var(--db-gold-bright);
}

/* Off-canvas mobile menu: increase font weight & size for readability */
.hc-offcanvas-nav ul li a {
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    padding: 16px 20px !important;
    min-height: 48px !important;
}

/* ---------- Top-bar (above header) — keep compact but readable ---------- */
.top-bar-section {
    font-size: 0.95rem;
    padding: 10px 0;
}

/* ---------- High-contrast mode hardening ---------- */
@media (prefers-contrast: more) {
    body { color: #000; background: #FFF6E0; }
    a, .single-entry-summary a, .entry-content a { color: #4A0E0E; }
    .site-header,
    .main-menu,
    #content-footer-section { background: #4A0E0E !important; }
    #site-navigation .nav.navbar-nav > li > a,
    .menu-container ul > li > a { color: #FFFFFF !important; }
}

/* =============================================================
   DragonBridge — Modern Engagement Layer (2026 trends)
   Aurora gradients · Glassmorphism · Scroll-driven reveals
   Bento grids · 3D depth · Shimmer · Dark mode · Micro-interactions
   ============================================================= */

/* ---------- Animated aurora background mesh ----------
   Slow-drifting golden/burgundy color blobs over the parchment.
   Adds life without competing with content. */
body {
    background-attachment: fixed;
}

body:before {
    content: "";
    position: fixed;
    inset: 0;
    z-index: -1;
    pointer-events: none;
    background:
        radial-gradient(ellipse 60% 50% at 12% 18%, rgba(201, 169, 97, 0.22) 0%, transparent 60%),
        radial-gradient(ellipse 50% 45% at 88% 82%, rgba(107, 20, 20, 0.18) 0%, transparent 65%),
        radial-gradient(ellipse 40% 40% at 80% 12%, rgba(31, 74, 44, 0.10) 0%, transparent 60%),
        radial-gradient(ellipse 45% 45% at 18% 88%, rgba(229, 196, 106, 0.12) 0%, transparent 65%);
    animation: db-aurora-drift 28s ease-in-out infinite alternate;
    filter: blur(8px);
}

@keyframes db-aurora-drift {
    0%   { transform: translate(0, 0) scale(1); opacity: 0.85; }
    33%  { transform: translate(-3%, 2%) scale(1.05); opacity: 1; }
    66%  { transform: translate(2%, -2%) scale(0.98); opacity: 0.9; }
    100% { transform: translate(-1%, 3%) scale(1.04); opacity: 1; }
}

/* ---------- Shimmer gold text on hero titles ----------
   Light passes across the gold like polished metal. */
@keyframes db-shimmer {
    0%   { background-position: -200% center; }
    100% { background-position:  200% center; }
}

.top-header .header-site-title,
.top-header .single-title,
.top-header.singular-heading .header-title .single-title {
    background-image: linear-gradient(
        100deg,
        #E5C46A 0%,
        #FFF3D2 35%,
        #FFFFFF 50%,
        #FFF3D2 65%,
        #E5C46A 100%
    );
    background-size: 200% auto;
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    color: transparent !important;
    animation: db-shimmer 6s linear infinite;
    text-shadow: none !important;
    filter: drop-shadow(0 2px 4px rgba(0,0,0,0.5));
}

/* ---------- Glassmorphism on sticky header (when scrolled) ----------
   Scroll-driven animation: header fades from solid burgundy to
   translucent frosted glass as the page scrolls past 80px. */
@supports (animation-timeline: scroll()) {
    @media (min-width: 992px) {
        .site-header.business-heading {
            animation: db-header-glass linear both;
            animation-timeline: scroll(root);
            animation-range: 0 160px;
        }
        .main-menu {
            animation: db-header-glass linear both;
            animation-timeline: scroll(root);
            animation-range: 0 160px;
        }
    }
}

@keyframes db-header-glass {
    from {
        background-color: var(--db-burgundy);
        backdrop-filter: blur(0px);
        -webkit-backdrop-filter: blur(0px);
        box-shadow: 0 0 0 transparent;
    }
    to {
        background-color: rgba(74, 14, 14, 0.82);
        backdrop-filter: blur(14px) saturate(1.4);
        -webkit-backdrop-filter: blur(14px) saturate(1.4);
        box-shadow: 0 8px 32px rgba(0, 0, 0, 0.35),
                    inset 0 -1px 0 rgba(229, 196, 106, 0.3);
    }
}

/* Browsers without scroll-timeline still get a static glass effect
   when scrolled past the top thanks to existing sticky shadow. */

/* ---------- 3D card depth & hover tilt ----------
   Multi-layer shadow + slight Y-translate + golden glow on hover. */
article.content-article,
.post.hentry,
.hentry {
    transition:
        transform 0.45s cubic-bezier(0.2, 0.8, 0.2, 1),
        box-shadow 0.45s cubic-bezier(0.2, 0.8, 0.2, 1),
        border-color 0.3s ease;
    box-shadow:
        0 1px 2px rgba(74, 14, 14, 0.08),
        0 4px 12px rgba(74, 14, 14, 0.06),
        0 12px 32px rgba(74, 14, 14, 0.04);
    will-change: transform;
}

article.content-article:hover,
.post.hentry:hover,
.hentry:hover {
    transform: translateY(-6px);
    border-color: var(--db-gold-bright);
    box-shadow:
        0 2px 4px rgba(74, 14, 14, 0.12),
        0 12px 24px rgba(74, 14, 14, 0.18),
        0 28px 56px rgba(74, 14, 14, 0.14),
        0 0 0 1px rgba(229, 196, 106, 0.5);
}

/* Parchment-shimmer sheen that drifts across the card on hover */
article.content-article,
.post.hentry {
    position: relative;
    overflow: hidden;
}

article.content-article > .db-shine,
.post.hentry > .db-shine { display: none; }

article.content-article:before,
.post.hentry:before {
    /* keep the inner gold double-border from earlier */
}

article.content-article:hover:before,
.post.hentry:hover:before {
    border-color: rgba(201, 169, 97, 0.55);
}

/* ---------- Image hover: zoom + gold frame reveal ---------- */
.news-thumb {
    overflow: hidden;
    position: relative;
}

.news-thumb img {
    transition: transform 0.7s cubic-bezier(0.2, 0.8, 0.2, 1), filter 0.5s ease;
    will-change: transform;
}

article.content-article:hover .news-thumb img,
.post.hentry:hover .news-thumb img,
.news-thumb:hover img {
    transform: scale(1.06);
    filter: saturate(1.15) contrast(1.05);
}

/* Inner gold frame appears on hover */
.news-thumb:after,
.news-thumb:before {
    transition: opacity 0.35s ease, transform 0.45s ease;
    opacity: 0.85;
}

article.content-article:hover .news-thumb:before,
.post.hentry:hover .news-thumb:before {
    transform: translate(2px, 2px);
    opacity: 1;
}

article.content-article:hover .news-thumb:after,
.post.hentry:hover .news-thumb:after {
    transform: translate(-2px, -2px);
    opacity: 1;
}

/* ---------- Scroll-driven reveal: posts fade & lift in ----------
   Each article enters the viewport with a soft rise. */
@supports (animation-timeline: view()) {
    @media (prefers-reduced-motion: no-preference) {
        article.content-article,
        .post.hentry {
            animation: db-rise-in linear both;
            animation-timeline: view();
            animation-range: entry 0% entry 40%;
        }

        .widget {
            animation: db-fade-in linear both;
            animation-timeline: view();
            animation-range: entry 0% entry 50%;
        }
    }
}

@keyframes db-rise-in {
    from { opacity: 0; transform: translateY(36px); }
    to   { opacity: 1; transform: translateY(0); }
}

@keyframes db-fade-in {
    from { opacity: 0; transform: translateY(20px); }
    to   { opacity: 1; transform: translateY(0); }
}

/* ---------- Dragon-flame glow on primary buttons ----------
   Animated radial ember that breathes behind the wax-seal buttons. */
button,
input[type="submit"],
input#submit,
a.button,
.btn,
.wp-block-button__link,
.woocommerce a.button,
.woocommerce button.button {
    position: relative;
    overflow: hidden;
    isolation: isolate;
}

button:before,
input[type="submit"]:before,
.btn:before,
a.button:before,
.wp-block-button__link:before,
.woocommerce a.button:before,
.woocommerce button.button:before {
    content: "";
    position: absolute;
    inset: -50%;
    background: radial-gradient(
        circle at 30% 110%,
        rgba(255, 167, 38, 0.45) 0%,
        rgba(229, 102, 33, 0.25) 25%,
        transparent 55%
    );
    opacity: 0;
    z-index: -1;
    transition: opacity 0.4s ease;
    animation: db-flame-breathe 3s ease-in-out infinite;
}

button:hover:before,
input[type="submit"]:hover:before,
.btn:hover:before,
a.button:hover:before,
.wp-block-button__link:hover:before,
.woocommerce a.button:hover:before,
.woocommerce button.button:hover:before {
    opacity: 1;
}

@keyframes db-flame-breathe {
    0%, 100% { transform: translateY(0) scale(1); }
    50%      { transform: translateY(-4%) scale(1.05); }
}

/* Light sweep across button on hover */
button:after,
input[type="submit"]:after,
.btn:after,
a.button:after,
.wp-block-button__link:after,
.woocommerce a.button:after,
.woocommerce button.button:after {
    content: "";
    position: absolute;
    top: 0; left: -100%;
    width: 50%; height: 100%;
    background: linear-gradient(
        100deg,
        transparent 0%,
        rgba(255, 243, 210, 0.35) 50%,
        transparent 100%
    );
    transition: left 0.7s cubic-bezier(0.2, 0.8, 0.2, 1);
    pointer-events: none;
}

button:hover:after,
input[type="submit"]:hover:after,
.btn:hover:after,
a.button:hover:after,
.wp-block-button__link:hover:after,
.woocommerce a.button:hover:after,
.woocommerce button.button:hover:after {
    left: 150%;
}

/* ---------- Bento-style archive grid ----------
   The list of articles becomes a varied-size grid on larger screens.
   First post is hero-sized; subsequent posts vary for visual rhythm. */
@media (min-width: 992px) {
    body.blog .col-md-9 > .row,
    body.archive .col-md-9 > .row,
    body.search .col-md-9 > .row,
    body.blog .col-md-12,
    body.archive .col-md-12,
    body.home:not(.page) #entry-content {
        /* the WP markup may vary — target generic post containers below */
    }

    /* Generic bento container: any list of .post or .content-article */
    .page-area:has(article.content-article + article.content-article),
    .col-md-9:has(article.content-article + article.content-article),
    .col-md-12:has(article.content-article + article.content-article) {
        display: grid;
        grid-template-columns: repeat(6, 1fr);
        gap: 22px;
    }

    /* Default tile: spans 3 of 6 columns (half-width) */
    .page-area:has(article.content-article + article.content-article) > article.content-article,
    .col-md-9:has(article.content-article + article.content-article) > article.content-article,
    .col-md-12:has(article.content-article + article.content-article) > article.content-article {
        grid-column: span 3;
        margin-bottom: 0;
    }

    /* First post: full-width hero card */
    .page-area:has(article.content-article + article.content-article) > article.content-article:first-of-type,
    .col-md-9:has(article.content-article + article.content-article) > article.content-article:first-of-type,
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:first-of-type {
        grid-column: span 6;
    }

    .page-area > article.content-article:first-of-type .news-thumb,
    .col-md-9 > article.content-article:first-of-type .news-thumb,
    .col-md-12 > article.content-article:first-of-type .news-thumb {
        aspect-ratio: 21 / 9;
    }

    .page-area > article.content-article:first-of-type .entry-title,
    .col-md-9 > article.content-article:first-of-type .entry-title,
    .col-md-12 > article.content-article:first-of-type .entry-title {
        font-size: clamp(1.6rem, 3vw, 2.4rem);
    }

    /* Every 5th post: 2/3 width for rhythm */
    .page-area:has(article.content-article + article.content-article) > article.content-article:nth-of-type(5n+4),
    .col-md-9:has(article.content-article + article.content-article) > article.content-article:nth-of-type(5n+4),
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:nth-of-type(5n+4) {
        grid-column: span 4;
    }

    .page-area:has(article.content-article + article.content-article) > article.content-article:nth-of-type(5n+5),
    .col-md-9:has(article.content-article + article.content-article) > article.content-article:nth-of-type(5n+5),
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:nth-of-type(5n+5) {
        grid-column: span 2;
    }

    /* Pagination breaks back out to its own row */
    nav.navigation.pagination {
        grid-column: 1 / -1;
    }
}

/* Featured image standardization for grid tiles */
.news-thumb {
    aspect-ratio: 16 / 10;
    overflow: hidden;
}

.news-thumb img {
    width: 100%;
    height: 100%;
    object-fit: cover;
}

/* ---------- Sliding gradient underline on in-content links ----------
   Modern animated underline that grows from left on hover. */
.single-entry-summary a,
.entry-content a {
    background-image: linear-gradient(var(--db-gold), var(--db-gold));
    background-position: 0 100%;
    background-repeat: no-repeat;
    background-size: 100% 2px;
    border-bottom: none !important;
    transition: background-size 0.3s ease, color 0.2s ease, padding 0.2s ease;
    padding: 0 2px;
}

.single-entry-summary a:hover,
.entry-content a:hover {
    background-image: linear-gradient(var(--db-burgundy), var(--db-burgundy));
    background-size: 100% 100%;
    color: var(--db-gold-bright) !important;
}

/* ---------- Medallion ornament: pulse glow ---------- */
.top-header.home-heading:after,
.top-header.singular-heading:after {
    animation: db-medallion-pulse 3.6s ease-in-out infinite;
    box-shadow: 0 0 0 0 rgba(201, 169, 97, 0.5);
}

@keyframes db-medallion-pulse {
    0%, 100% { box-shadow: 0 0 0 0 rgba(201, 169, 97, 0.55); }
    50%      { box-shadow: 0 0 0 14px rgba(201, 169, 97, 0); }
}

/* ---------- Site title entry animation (load shimmer) ----------
   Letters fade & rise on first paint. Single play, no infinite. */
@media (prefers-reduced-motion: no-preference) {
    .top-header .header-site-title,
    .top-header .single-title {
        animation:
            db-rise-in 0.9s cubic-bezier(0.2, 0.8, 0.2, 1) both,
            db-shimmer 6s linear infinite 0.9s;
    }
}

/* ---------- Modern soft-curved section separators ----------
   SVG wave divider at the top of the footer. */
#content-footer-section {
    position: relative;
    overflow: visible;
}

#content-footer-section:before {
    content: "";
    position: absolute;
    top: -28px;
    left: 0;
    right: 0;
    height: 28px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 28' preserveAspectRatio='none'%3E%3Cpath fill='%234A0E0E' d='M0,28 C240,4 480,4 720,14 C960,24 1200,24 1440,8 L1440,28 Z'/%3E%3C/svg%3E");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    opacity: 1;
    pointer-events: none;
    height: 1px;
    top: -3px;
}

/* ---------- Hero gradient overlay improvements ---------- */
.top-header .single-image:after {
    background:
        radial-gradient(ellipse at center, rgba(74,14,14,0.30) 0%, rgba(20,10,10,0.70) 100%),
        linear-gradient(180deg,
            transparent 0%,
            transparent 50%,
            rgba(74,14,14,0.4) 100%);
}

/* ---------- Magnetic hover on category/tag ribbons ---------- */
.tags-links a,
.cat-links a {
    transition: transform 0.25s cubic-bezier(0.2, 0.8, 0.2, 1),
                background-color 0.25s ease,
                box-shadow 0.25s ease;
}

.tags-links a:hover,
.cat-links a:hover {
    transform: translateY(-2px) translateX(2px);
    box-shadow: 0 6px 12px rgba(74, 14, 14, 0.25);
}

/* ---------- Pagination: animated current indicator ---------- */
nav.navigation.pagination .nav-links .page-numbers.current:after {
    animation: db-medallion-pulse 2.4s ease-in-out infinite;
}

/* ---------- Drop-cap polish: ornamental glow ---------- */
.single-entry-summary > p:first-of-type:first-letter,
.entry-content > p:first-of-type:first-letter {
    background-image: linear-gradient(
        135deg,
        var(--db-burgundy) 0%,
        var(--db-burgundy-light) 50%,
        var(--db-burgundy-deep) 100%
    );
    -webkit-background-clip: text;
    background-clip: text;
    -webkit-text-fill-color: transparent;
    text-shadow: none;
    filter: drop-shadow(2px 2px 0 var(--db-gold)) drop-shadow(0 4px 8px rgba(74, 14, 14, 0.25));
}

/* ---------- Floating dragon-scale particles on widget hover ----------
   Tiny gold sparks lift away from widget titles. */
.widget {
    transition: transform 0.35s cubic-bezier(0.2, 0.8, 0.2, 1),
                box-shadow 0.35s ease,
                border-color 0.35s ease;
}

.widget:hover {
    transform: translateY(-3px);
    border-color: var(--db-gold-bright);
    box-shadow: 0 8px 24px rgba(74, 14, 14, 0.14),
                0 0 0 1px rgba(229, 196, 106, 0.4);
}

/* ---------- Modern: Smooth scroll & better selection ---------- */
html {
    scroll-behavior: smooth;
}

/* ---------- Dark mode REMOVED in v1.4.2 ----------
   The earlier prefers-color-scheme: dark block was partially overridden
   by the Customizer-palette inline CSS (which doesn't sit inside an
   @media query), producing inconsistent results — light body + dark
   tables. The theme now uses a single light palette across all OS
   preferences, driven exclusively by the Customizer controls. */

/* ---------- Reduce-motion overrides for all new animations ---------- */
@media (prefers-reduced-motion: reduce) {
    body:before,
    .top-header .header-site-title,
    .top-header .single-title,
    .top-header.home-heading:after,
    .top-header.singular-heading:after,
    nav.navigation.pagination .nav-links .page-numbers.current:after,
    button:before,
    input[type="submit"]:before,
    .btn:before {
        animation: none !important;
    }

    .top-header .header-site-title,
    .top-header .single-title {
        background: none !important;
        -webkit-text-fill-color: var(--db-gold-bright) !important;
        color: var(--db-gold-bright) !important;
    }
}

/* ---------- Print: reset all the engagement layer ---------- */
@media print {
    body:before,
    article.content-article:hover,
    .news-thumb img,
    button:before,
    button:after {
        all: unset !important;
    }
}

/* =============================================================
   DragonBridge — Full-width layout (no sidebar)
   ============================================================= */

/* The col-md-12 wrapper now owns the full row width.
   These rules make sure earlier sidebar-era styles don't bleed in. */

.col-md-12 > article.content-article,
.col-md-12 > .post,
.col-md-12 > .hentry,
.col-md-12 .single-content,
#site-content > .row > .col-md-12 {
    width: 100%;
}

/* Single-post and page content stays readable on ultra-wide displays */
.single .col-md-12 > article .single-entry-summary,
.single .col-md-12 > article .entry-content,
.page  .col-md-12 > article .single-entry-summary,
.page  .col-md-12 > article .entry-content {
    max-width: 78ch;
    margin-left: auto;
    margin-right: auto;
}

/* Full-bleed featured image inside a single article on wide screens */
@media (min-width: 992px) {
    .single .col-md-12 > article > .news-thumb,
    .page  .col-md-12 > article > .news-thumb {
        max-width: 1100px;
        margin-left: auto;
        margin-right: auto;
    }
}

/* Make sure the bento grid (already 6-column) uses the full row */
@media (min-width: 992px) {
    .col-md-12:has(article.content-article + article.content-article) {
        max-width: none;
    }
}

/* Defensive: if any old #sidebar markup slips through, hide it */
#sidebar,
aside.col-md-3#sidebar {
    display: none !important;
}

/* =============================================================
   DragonBridge — Shapes & Whimsy
   Crenellations · Pennants · Arches · Banners · Wax seals
   ============================================================= */

/* ---------- Castle crenellation at the bottom of the header ----------
   Replaces the straight gold double-border with hanging merlons. */
.site-header {
    border-bottom: none !important;
    overflow: visible !important;
    z-index: 1000;
}

.site-header:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 14px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='14' viewBox='0 0 48 14' preserveAspectRatio='none'%3E%3Cpath fill='%234A0E0E' d='M0,0 L18,0 L18,14 L24,14 L24,0 L42,0 L42,14 L48,14 L48,0 Z M0,0 L48,0 L48,3 L0,3 Z'/%3E%3Cpath fill='%23C9A961' d='M0,0 L48,0 L48,1.5 L0,1.5 Z'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 48px 14px;
    pointer-events: none;
    z-index: 5;
    filter: drop-shadow(0 2px 3px rgba(0,0,0,0.25));
}

/* For the woonav layout, the menu sits below the brand bar — give it the
   crenellation instead so the castellation lives at the navigation edge. */
.site-header.woo-heading:after { display: none; }
.main-menu {
    position: relative;
    overflow: visible;
}
.main-menu:after {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: 100%;
    height: 14px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='48' height='14' viewBox='0 0 48 14' preserveAspectRatio='none'%3E%3Cpath fill='%232D0808' d='M0,0 L18,0 L18,14 L24,14 L24,0 L42,0 L42,14 L48,14 L48,0 Z M0,0 L48,0 L48,3 L0,3 Z'/%3E%3Cpath fill='%23C9A961' d='M0,0 L48,0 L48,1.5 L0,1.5 Z'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 48px 14px;
    pointer-events: none;
    z-index: 5;
    filter: drop-shadow(0 2px 3px rgba(0,0,0,0.25));
}

/* ---------- Pennant flag string ----------
   A row of triangular cloth banners hanging from the crenellation.
   Lives in its own thin band right under the castle teeth. */
body:after {
    content: "";
    display: block;
    position: relative;
    top: 0;
    height: 0;
}

.site-header,
.main-menu {
    /* shift the box-shadow down so the pennants sit cleanly on top of it */
}

/* The pennant band is appended via the body's wrapper. Since we can't
   add markup, we attach to the page-wrap as a sticky band that sits
   just below the header (z-index slightly below the header bg). */
.page-wrap > .pennant-band { display: none; }

/* Generated pennant string — placed as a fixed strip directly below
   the sticky header. Triangles alternate burgundy / gold / forest. */
.site-header:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 12px);
    height: 22px;
    background-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='22' viewBox='0 0 120 22'%3E%3Cpath stroke='%23C9A961' stroke-width='0.8' d='M0,1 L120,1'/%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='0.5' points='2,1 22,1 12,20'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='0.5' points='22,1 42,1 32,20'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='0.5' points='42,1 62,1 52,20'/%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='0.5' points='62,1 82,1 72,20'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='0.5' points='82,1 102,1 92,20'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='0.5' points='102,1 122,1 112,20'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 120px 22px;
    pointer-events: none;
    z-index: 4;
    animation: db-pennant-sway 6s ease-in-out infinite alternate;
    transform-origin: top center;
    filter: drop-shadow(0 3px 4px rgba(0,0,0,0.2));
}

@keyframes db-pennant-sway {
    0%, 100% { transform: skewY(-0.6deg); }
    50%      { transform: skewY(0.6deg); }
}

/* On the woonav layout, hang pennants from the navigation instead */
.site-header.woo-heading:before { display: none; }
.main-menu:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: calc(100% + 12px);
    height: 22px;
    background-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='22' viewBox='0 0 120 22'%3E%3Cpath stroke='%23C9A961' stroke-width='0.8' d='M0,1 L120,1'/%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='0.5' points='2,1 22,1 12,20'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='0.5' points='22,1 42,1 32,20'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='0.5' points='42,1 62,1 52,20'/%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='0.5' points='62,1 82,1 72,20'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='0.5' points='82,1 102,1 92,20'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='0.5' points='102,1 122,1 112,20'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 120px 22px;
    pointer-events: none;
    z-index: 4;
    animation: db-pennant-sway 6s ease-in-out infinite alternate;
    transform-origin: top center;
    filter: drop-shadow(0 3px 4px rgba(0,0,0,0.2));
}

/* Push the top of the hero down so the pennants don't overlap content */
.top-header,
#site-content {
    position: relative;
    z-index: 1;
}

.top-header {
    margin-top: 36px; /* room for the pennants */
}

@media (max-width: 768px) {
    .site-header:before,
    .main-menu:before { display: none; } /* skip pennants on small viewports */
    .site-header:after,
    .main-menu:after { height: 10px; background-size: 36px 10px; }
    .top-header { margin-top: 14px; }
}

/* ---------- Hero: Romanesque arched bottom edge ----------
   The hero ends in a row of stone arches like a castle gallery,
   replacing the straight horizontal edge. */
.top-header,
.top-header.home-heading,
.top-header.singular-heading {
    border-bottom: none !important;
    -webkit-mask-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath fill='%23000' d='M0,0 L1440,0 L1440,80 C1380,80 1380,40 1320,40 C1260,40 1260,80 1200,80 C1140,80 1140,40 1080,40 C1020,40 1020,80 960,80 C900,80 900,40 840,40 C780,40 780,80 720,80 C660,80 660,40 600,40 C540,40 540,80 480,80 C420,80 420,40 360,40 C300,40 300,80 240,80 C180,80 180,40 120,40 C60,40 60,80 0,80 Z'/%3E%3C/svg%3E");
    mask-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 100' preserveAspectRatio='none'%3E%3Cpath fill='%23000' d='M0,0 L1440,0 L1440,80 C1380,80 1380,40 1320,40 C1260,40 1260,80 1200,80 C1140,80 1140,40 1080,40 C1020,40 1020,80 960,80 C900,80 900,40 840,40 C780,40 780,80 720,80 C660,80 660,40 600,40 C540,40 540,80 480,80 C420,80 420,40 360,40 C300,40 300,80 240,80 C180,80 180,40 120,40 C60,40 60,80 0,80 Z'/%3E%3C/svg%3E");
    -webkit-mask-size: 100% 100%;
    mask-size: 100% 100%;
    -webkit-mask-repeat: no-repeat;
    mask-repeat: no-repeat;
}

/* The gold arcade trim that sits on top of the arched bottom */
.top-header:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    bottom: 0;
    height: 12px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1440 12' preserveAspectRatio='none'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='2' d='M0,12 C60,12 60,2 120,2 C180,2 180,12 240,12 C300,12 300,2 360,2 C420,2 420,12 480,12 C540,12 540,2 600,2 C660,2 660,12 720,12 C780,12 780,2 840,2 C900,2 900,12 960,12 C1020,12 1020,2 1080,2 C1140,2 1140,12 1200,12 C1260,12 1260,2 1320,2 C1380,2 1380,12 1440,12'/%3E%3C/svg%3E");
    background-size: 100% 100%;
    background-repeat: no-repeat;
    pointer-events: none;
    z-index: 6;
}

/* Re-hide the medallion seal — the arches replace it as the bottom flourish */
.top-header.home-heading:after,
.top-header.singular-heading:after { display: none; }

/* ---------- Wax-seal stamp floating on the hero ----------
   A red wax seal with the "DB" monogram, slightly rotated, in the top-right. */
.top-header.home-heading,
.top-header.singular-heading {
    overflow: visible;
}

.top-header .header-title:after {
    content: "";
    position: absolute;
    top: -28px;
    right: -28px;
    width: 76px;
    height: 76px;
    border-radius: 50%;
    background:
        radial-gradient(circle at 30% 30%,
            #8C2828 0%, var(--db-burgundy) 40%, var(--db-burgundy-deep) 100%);
    box-shadow:
        inset 0 0 0 3px var(--db-gold),
        inset 0 0 0 5px var(--db-burgundy-deep),
        inset 0 -6px 12px rgba(0,0,0,0.4),
        0 6px 16px rgba(0,0,0,0.45);
    transform: rotate(-14deg);
    z-index: 8;
    display: block !important;
    background-image:
        radial-gradient(circle at 30% 30%, rgba(255,255,255,0.18) 0%, transparent 35%);
}

.top-header .header-title {
    position: relative;
}

.top-header .header-title:before {
    /* keep the dragon-watermark from earlier */
}

/* "DB" monogram inside the wax seal — use a sibling decorative element via SVG */
.top-header .header-title {
    /* attach the monogram with a layered ::marker workaround using background-image */
}

@media (max-width: 768px) {
    .top-header .header-title:after {
        width: 54px;
        height: 54px;
        top: -18px;
        right: -10px;
    }
}

/* ---------- Castle silhouette at the top of the footer ----------
   Replaces the soft SVG wave with castle battlements + flag turrets. */
#content-footer-section {
    margin-top: 36px;
}

#content-footer-section:before {
    content: "";
    position: absolute;
    left: 0;
    right: 0;
    top: -36px;
    bottom: auto;
    height: 36px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 480 36' preserveAspectRatio='none'%3E%3Cpath fill='%234A0E0E' d='M0,36 L0,18 L24,18 L24,10 L40,10 L40,18 L60,18 L60,4 L72,4 L72,18 L96,18 L96,12 L116,12 L116,18 L140,18 L140,2 L152,2 L152,18 L180,18 L180,10 L200,10 L200,18 L228,18 L228,6 L244,6 L244,18 L268,18 L268,10 L288,10 L288,18 L312,18 L312,2 L324,2 L324,18 L352,18 L352,12 L372,12 L372,18 L396,18 L396,8 L412,8 L412,18 L436,18 L436,12 L456,12 L456,18 L480,18 L480,36 Z'/%3E%3Cpath fill='%23C9A961' d='M62,4 L72,4 M62,4 L67,0 L72,4 M142,2 L152,2 M142,2 L147,-2 L152,2 M314,2 L324,2 M314,2 L319,-2 L324,2'/%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='0.6' d='M0,18 L480,18'/%3E%3C/svg%3E");
    background-size: 480px 36px;
    background-repeat: repeat-x;
    height: 36px;
    pointer-events: none;
    filter: drop-shadow(0 -2px 4px rgba(0,0,0,0.15));
}

/* ---------- First bento card: diagonal "FEATURED" ribbon ---------- */
@media (min-width: 992px) {
    .page-area:has(article.content-article + article.content-article) > article.content-article:first-of-type,
    .col-md-9:has(article.content-article + article.content-article) > article.content-article:first-of-type,
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:first-of-type {
        position: relative;
        overflow: hidden;
    }

    .col-md-12:has(article.content-article + article.content-article) > article.content-article:first-of-type:before,
    .col-md-9:has(article.content-article + article.content-article) > article.content-article:first-of-type:before,
    .page-area:has(article.content-article + article.content-article) > article.content-article:first-of-type:before {
        content: "★ FEATURED ★";
        position: absolute;
        top: 26px;
        right: -52px;
        z-index: 8;
        background: linear-gradient(180deg, var(--db-gold-bright) 0%, var(--db-gold) 50%, var(--db-gold-deep) 100%);
        color: var(--db-burgundy-deep);
        font-family: 'Cinzel', Georgia, serif;
        font-weight: 800;
        font-size: 0.75rem;
        letter-spacing: 0.2em;
        padding: 6px 60px;
        transform: rotate(45deg);
        border-top: 2px solid var(--db-burgundy);
        border-bottom: 2px solid var(--db-burgundy);
        box-shadow: 0 4px 10px rgba(74, 14, 14, 0.4);
        text-shadow: 0 1px 0 rgba(255,255,255,0.3);
        animation: db-ribbon-shimmer 4s ease-in-out infinite;
    }
}

@keyframes db-ribbon-shimmer {
    0%, 100% { filter: brightness(1); }
    50%      { filter: brightness(1.12); }
}

/* ---------- Hexagonal heraldic frame on first bento featured image ---------- */
@media (min-width: 992px) {
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:first-of-type .news-thumb,
    .col-md-9:has(article.content-article + article.content-article) > article.content-article:first-of-type .news-thumb,
    .page-area:has(article.content-article + article.content-article) > article.content-article:first-of-type .news-thumb {
        position: relative;
    }

    .col-md-12:has(article.content-article + article.content-article) > article.content-article:first-of-type .news-thumb img,
    .col-md-9:has(article.content-article + article.content-article) > article.content-article:first-of-type .news-thumb img,
    .page-area:has(article.content-article + article.content-article) > article.content-article:first-of-type .news-thumb img {
        clip-path: polygon(
            0% 0%, 96% 0%, 100% 6%, 100% 94%, 96% 100%,
            4% 100%, 0% 94%, 0% 6%
        );
    }
}

/* ---------- Diamond shield-studs on bento cards ----------
   Small rotated burgundy diamonds with gold borders at the corners. */
@media (min-width: 992px) {
    article.content-article {
        position: relative;
    }

    /* keep the existing top-right L-bracket pseudo, but add diamond studs
       via the .news-thumb pseudos which were also L-brackets — let's
       upgrade those to diamond studs at all four corners. */
    .news-thumb:before,
    .news-thumb:after {
        width: 14px !important;
        height: 14px !important;
        background: var(--db-burgundy);
        border: 2px solid var(--db-gold-bright);
        transform: rotate(45deg);
        border-radius: 1px;
        box-shadow: 0 2px 4px rgba(0,0,0,0.25);
    }

    .news-thumb:before {
        top: 12px;
        left: 12px;
        border-bottom: 2px solid var(--db-gold-bright);
        border-right: 2px solid var(--db-gold-bright);
    }
    .news-thumb:after {
        bottom: 12px;
        right: 12px;
        border-top: 2px solid var(--db-gold-bright);
        border-left: 2px solid var(--db-gold-bright);
    }
}

/* ---------- Banner-tail widget titles ----------
   The widget heading becomes a small banner ribbon with a notched right tail. */
.widget {
    overflow: visible;
}

.widget-title {
    margin: -18px -20px 16px -20px;
    background: linear-gradient(180deg, var(--db-burgundy) 0%, var(--db-burgundy-deep) 100%);
    padding: 12px 22px 12px 22px;
    position: relative;
    clip-path: polygon(
        0 0,
        100% 0,
        96% 50%,
        100% 100%,
        0 100%,
        4% 50%
    );
    border-bottom: none !important;
}

.widget-title h3 {
    color: var(--db-gold-bright) !important;
    border-bottom: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

.widget-title h3:after { display: none; }

.widget-title h3:before {
    color: var(--db-gold-bright) !important;
}

/* In the footer the widget titles are already on burgundy, so re-style there too */
#content-footer-section .widget-title {
    background: rgba(0,0,0,0.25);
    border-top: 1px solid var(--db-gold);
    border-bottom: 1px solid var(--db-gold);
}

/* ---------- Page-curl shadow on cards ----------
   Subtle diagonal gradient in the bottom-right corner that suggests
   a curled parchment page lifting slightly. */
article.content-article,
.post.hentry,
.hentry {
    background-image:
        linear-gradient(135deg, transparent calc(100% - 28px), rgba(74,14,14,0.10) calc(100% - 28px), rgba(74,14,14,0.18) calc(100% - 14px), transparent 100%);
    background-repeat: no-repeat;
    background-size: 60px 60px;
    background-position: bottom right;
}

/* ---------- Pricing badges (WooCommerce) as banner ribbons ---------- */
.woocommerce ul.products li.product .price,
.woocommerce div.product p.price,
.woocommerce div.product span.price {
    display: inline-block;
    background: linear-gradient(180deg, var(--db-gold-bright), var(--db-gold) 60%, var(--db-gold-deep));
    color: var(--db-burgundy-deep) !important;
    padding: 6px 22px 6px 18px;
    clip-path: polygon(0 0, 100% 0, 92% 50%, 100% 100%, 0 100%);
    border-left: 3px solid var(--db-burgundy);
    box-shadow: 0 3px 6px rgba(74, 14, 14, 0.25);
    text-shadow: 0 1px 0 rgba(255,255,255,0.3);
}

.woocommerce span.onsale {
    clip-path: polygon(0 0, 100% 0, 100% 80%, 50% 100%, 0 80%);
    padding: 8px 14px 16px 14px !important;
    border-radius: 0 !important;
    width: auto !important;
    min-width: 60px;
}

/* ---------- Ambient floating dragon silhouettes ----------
   Two large, very low-opacity dragon SVGs drift slowly in the page bg.
   Just enough to feel like the page lives in a dragon's domain. */
.page-wrap:before,
.page-wrap:after {
    content: "";
    position: fixed;
    pointer-events: none;
    z-index: -1;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 100'%3E%3Cpath fill='%236B1414' fill-opacity='1' d='M180,52 C176,42 166,40 156,44 L150,38 L146,46 C134,40 118,42 108,50 C96,46 80,50 70,58 C58,54 44,58 34,64 C28,60 20,62 16,68 L10,60 L22,52 L14,46 L26,48 C32,38 46,36 56,40 C66,30 80,30 90,38 C100,30 115,30 125,36 C140,30 158,32 174,38 L178,34 L184,44 Z M84,42 L92,38 L94,46 Z M52,56 L60,55 L57,62 Z'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
    opacity: 0.05;
}

.page-wrap:before {
    top: 15%;
    left: -120px;
    width: 320px;
    height: 160px;
    transform: scaleX(-1) rotate(-8deg);
    animation: db-dragon-drift-l 22s ease-in-out infinite alternate;
}

.page-wrap:after {
    bottom: 12%;
    right: -100px;
    width: 280px;
    height: 140px;
    transform: rotate(6deg);
    animation: db-dragon-drift-r 26s ease-in-out infinite alternate;
}

@keyframes db-dragon-drift-l {
    0%   { transform: scaleX(-1) rotate(-8deg) translate(0, 0); }
    100% { transform: scaleX(-1) rotate(-5deg) translate(20px, -30px); }
}

@keyframes db-dragon-drift-r {
    0%   { transform: rotate(6deg) translate(0, 0); }
    100% { transform: rotate(3deg) translate(-25px, 20px); }
}

@media (max-width: 768px) {
    .page-wrap:before,
    .page-wrap:after { display: none; }
}

/* ---------- Tilted polaroid effect on every 7th card ----------
   A gentle 1.5deg tilt with a parchment-stack illusion. */
@media (min-width: 992px) and (prefers-reduced-motion: no-preference) {
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:nth-of-type(7n+3) {
        transform: rotate(-0.6deg);
    }
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:nth-of-type(7n+5) {
        transform: rotate(0.6deg);
    }
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:nth-of-type(7n+3):hover,
    .col-md-12:has(article.content-article + article.content-article) > article.content-article:nth-of-type(7n+5):hover {
        transform: translateY(-6px) rotate(0);
    }
}

/* ---------- Heading flourish: small dragon glyphs flanking H2s in content ---------- */
.entry-content h2,
.single-entry-summary h2 {
    text-align: left;
    position: relative;
    padding-bottom: 0.4em;
}

.entry-content h2:before,
.single-entry-summary h2:before {
    content: "\269C";
    color: var(--db-gold-deep);
    margin-right: 10px;
    font-size: 0.9em;
    opacity: 0.75;
}

/* ---------- Reduced-motion: stop the swaying & drifting ---------- */
@media (prefers-reduced-motion: reduce) {
    .site-header:before,
    .main-menu:before,
    .page-wrap:before,
    .page-wrap:after,
    .col-md-12 > article.content-article:first-of-type:before {
        animation: none !important;
    }
}

/* ---------- Print: strip all decorative shapes ---------- */
@media print {
    .site-header:before,
    .site-header:after,
    .main-menu:before,
    .main-menu:after,
    .page-wrap:before,
    .page-wrap:after,
    #content-footer-section:before,
    .top-header:before,
    .top-header .header-title:after,
    .col-md-12 > article.content-article:first-of-type:before {
        display: none !important;
    }
}

/* =============================================================
   DragonBridge — Home Template (Large Hero, No Title)
   Scoped to body.dragonbridge-large-hero set by template-home.php.
   ============================================================= */

/* Fixed 2172 × 724 aspect ratio (3:1 banner). Width is 100% of the
   container; height is derived so the hero always renders at the exact
   ratio of the source artwork. No height clamps, no vh — pure ratio. */
body.dragonbridge-large-hero .top-header.home-large-hero,
body.dragonbridge-large-hero .top-header.home-large-hero .single-image,
body.dragonbridge-large-hero .top-header.home-large-hero .bg-single-image {
    height: auto !important;
    min-height: 0 !important;
    max-height: none !important;
    width: 100% !important;
    aspect-ratio: 2172 / 724 !important;
}

/* No darkening / tinting layer over the image. The hero is the image. */
body.dragonbridge-large-hero .top-header.home-large-hero .single-image:after,
body.dragonbridge-large-hero .top-header.home-large-hero .single-image:before {
    display: none !important;
    background: none !important;
    content: none !important;
}

/* No blur, no sepia, no brightness reduction — show the artwork raw. */
body.dragonbridge-large-hero .top-header.home-large-hero .bg-single-image {
    filter: none !important;
    -webkit-filter: none !important;
}

/* Make the image fill the fixed-ratio frame cleanly. */
body.dragonbridge-large-hero .top-header.home-large-hero .single-image img,
body.dragonbridge-large-hero .top-header.home-large-hero .bg-single-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover;
    object-position: center;
    position: absolute;
    inset: 0;
    top: 0 !important;
    left: 0 !important;
    transform: none !important;
    max-width: none !important;
    min-height: 0 !important;
}

/* Strip the arched/scalloped bottom mask and gold arcade trim — the user
   wants a clean rectangular hero at the exact 2172×724 ratio. */
body.dragonbridge-large-hero .top-header.home-large-hero {
    -webkit-mask-image: none !important;
    mask-image: none !important;
    border-bottom: none !important;
}

body.dragonbridge-large-hero .top-header.home-large-hero:before {
    display: none !important;
    content: none !important;
}

/* No title overlay — kill any header-title decorations that might leak in. */
body.dragonbridge-large-hero .top-header.home-large-hero .header-title,
body.dragonbridge-large-hero .top-header.home-large-hero .header-title:before,
body.dragonbridge-large-hero .top-header.home-large-hero .header-title:after,
body.dragonbridge-large-hero .top-header.home-large-hero:after {
    display: none !important;
}

/* Keep the Romanesque arched bottom + gold arcade trim — those make the
   hero feel like a stone gallery and shouldn't be removed. */

/* Content area: a little extra breathing room below the larger hero. */
body.dragonbridge-large-hero .home-large-hero-content {
    margin-top: 28px;
}

body.dragonbridge-large-hero .home-page-content {
    /* Allow page authors to use wide blocks (Gutenberg align-wide) and
       full-bleed sections without the 78ch reading cap that applies
       to standard pages. */
    max-width: none;
    margin: 0;
}

/* If the user includes a block-level title in the page content, keep it
   styled like a page heading but never duplicate it with an auto-hero title. */
body.dragonbridge-large-hero .home-page-content > h1:first-child,
body.dragonbridge-large-hero .home-page-content > .wp-block-heading:first-child {
    text-align: center;
    margin-top: 0;
}

/* The pennant flags should clear the bigger hero — push hero down. */
body.dragonbridge-large-hero .top-header.home-large-hero {
    margin-top: 44px;
}

@media (max-width: 768px) {
    body.dragonbridge-large-hero .top-header.home-large-hero {
        margin-top: 18px;
    }
}

/* Subtle entry animation: hero fades + scales in from 1.04 to 1.0 on load. */
@media (prefers-reduced-motion: no-preference) {
    body.dragonbridge-large-hero .top-header.home-large-hero .single-image img {
        animation: db-home-hero-in 1.2s cubic-bezier(0.2, 0.8, 0.2, 1) both;
    }
}

@keyframes db-home-hero-in {
    from { opacity: 0; transform: translateX(-50%) translateY(-50%) scale(1.06); }
    to   { opacity: 1; transform: translateX(-50%) translateY(-50%) scale(1); }
}

/* =============================================================
   DragonBridge — Subtle Background Textures
   Parchment grain · Fleur lattice · Stone blocks · Damask
   ============================================================= */

/* ---------- Parchment paper grain on the body ----------
   feTurbulence noise rendered inline as a tiling SVG, ~6% opacity.
   Adds the irregular fibre look of aged paper without weighing
   anything down or requiring an image asset. */
body {
    background-image:
        radial-gradient(at 20% 10%, rgba(201, 169, 97, 0.08) 0px, transparent 50%),
        radial-gradient(at 80% 90%, rgba(107, 20, 20, 0.05) 0px, transparent 50%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='240' height='240'%3E%3Cfilter id='n'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.85' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.09  0 0 0 0 0.05  0 0 0 0.55 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n)' opacity='0.5'/%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-parchment-light) 0%, var(--db-parchment) 100%);
    background-size: auto, auto, 240px 240px, auto;
    background-repeat: no-repeat, no-repeat, repeat, no-repeat;
    background-attachment: fixed, fixed, fixed, fixed;
}

/* ---------- Fleur-de-lis lattice on cards ----------
   A faint repeating pattern of fleur glyphs in gold, ~3% opacity.
   Reads as embossed parchment when viewed close, invisible at a glance. */
article.content-article,
.post.hentry,
.hentry {
    background-image:
        /* the existing page-curl gradient stays first */
        linear-gradient(135deg, transparent calc(100% - 28px), rgba(74,14,14,0.10) calc(100% - 28px), rgba(74,14,14,0.18) calc(100% - 14px), transparent 100%),
        /* fleur lattice */
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='64' height='64' viewBox='0 0 64 64'%3E%3Cg fill='%23C9A961' fill-opacity='0.08'%3E%3Cpath d='M32,8 Q34,14 32,18 Q30,14 32,8 Z M28,18 Q26,22 28,26 L32,22 L36,26 Q38,22 36,18 Q32,22 28,18 Z M30,28 L34,28 L34,32 L30,32 Z'/%3E%3Cpath d='M0,40 Q2,46 0,50 Q-2,46 0,40 Z M64,40 Q66,46 64,50 Q62,46 64,40 Z'/%3E%3C/g%3E%3C/svg%3E"),
        /* subtle paper noise on cards too */
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='180'%3E%3Cfilter id='n2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.2' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.2  0 0 0 0 0.1  0 0 0 0 0.05  0 0 0 0.3 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23n2)' opacity='0.35'/%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-parchment-light) 0%, var(--db-parchment-warm) 100%);
    background-repeat: no-repeat, repeat, repeat, no-repeat;
    background-size: 60px 60px, 64px 64px, 180px 180px, auto;
    background-position: bottom right, center, center, 0 0;
}

/* ---------- Damask diamond pattern on widgets ----------
   Slightly more visible than on cards because widget surfaces are smaller. */
.widget {
    background-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='36' height='36' viewBox='0 0 36 36'%3E%3Cg fill='none' stroke='%23C9A961' stroke-width='0.6' stroke-opacity='0.18'%3E%3Cpath d='M18,4 L32,18 L18,32 L4,18 Z'/%3E%3Ccircle cx='18' cy='18' r='1.2' fill='%23C9A961' fill-opacity='0.25'/%3E%3C/g%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-parchment-light) 0%, var(--db-parchment-warm) 100%);
    background-repeat: repeat, no-repeat;
    background-size: 36px 36px, auto;
}

/* ---------- Stone-block texture on the footer ----------
   Irregular block grid suggesting a castle wall, drawn in gold lines
   at low opacity over the existing burgundy + dragon-scale layers. */
#content-footer-section {
    background-image:
        linear-gradient(180deg, var(--db-burgundy) 0%, var(--db-burgundy-deep) 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='120' viewBox='0 0 160 120'%3E%3Cg fill='none' stroke='%23C9A961' stroke-width='0.5' stroke-opacity='0.12'%3E%3Cpath d='M0,30 L160,30 M0,60 L160,60 M0,90 L160,90'/%3E%3Cpath d='M40,0 L40,30 M100,0 L100,30 M20,30 L20,60 M70,30 L70,60 M130,30 L130,60 M50,60 L50,90 M110,60 L110,90 M30,90 L30,120 M90,90 L90,120 M140,90 L140,120'/%3E%3C/g%3E%3C/svg%3E"),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='28' height='28' viewBox='0 0 28 28'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='0.6' stroke-opacity='0.16' d='M0,14 Q7,4 14,14 Q21,4 28,14 M-14,28 Q-7,18 0,28 Q7,18 14,28 Q21,18 28,28 Q35,18 42,28 M14,0 Q21,-10 28,0'/%3E%3C/svg%3E");
    background-repeat: no-repeat, repeat, repeat;
    background-size: auto, 160px 120px, 28px 28px;
    background-blend-mode: normal, overlay, overlay;
}

/* ---------- Top bar texture: subtle parchment fibre ---------- */
.top-bar-section {
    background-image:
        linear-gradient(180deg, var(--db-burgundy-deep) 0%, #3D0808 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='8'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='0.4' stroke-opacity='0.15' d='M0,4 Q15,2 30,4 Q45,6 60,4 Q75,2 90,4 Q105,6 120,4'/%3E%3C/svg%3E");
    background-repeat: no-repeat, repeat-x;
    background-size: auto, 120px 8px;
    background-position: 0 0, 0 center;
}

/* ---------- Blockquote: aged paper detail ---------- */
blockquote {
    background-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='160' height='160'%3E%3Cfilter id='nb'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.4' numOctaves='1' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.18  0 0 0 0 0.08  0 0 0 0 0.04  0 0 0 0.4 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23nb)' opacity='0.5'/%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-parchment-warm) 0%, var(--db-parchment-light) 100%);
    background-size: 160px 160px, auto;
    background-repeat: repeat, no-repeat;
}

/* ---------- Buttons: brushed metal-foil texture on hover ---------- */
button:hover,
input[type="submit"]:hover,
.btn:hover,
a.button:hover,
.wp-block-button__link:hover {
    background-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='100' height='40'%3E%3Cg fill='none' stroke='%236B1414' stroke-width='0.4' stroke-opacity='0.25'%3E%3Cpath d='M0,4 L100,4 M0,12 L100,12 M0,20 L100,20 M0,28 L100,28 M0,36 L100,36'/%3E%3C/g%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-gold-bright) 0%, var(--db-gold) 100%) !important;
    background-repeat: repeat, no-repeat;
    background-size: 100px 40px, auto;
}

/* =============================================================
   DragonBridge — Home hero: heraldic banner-ribbon mask
   Keeps the 2172×724 aspect ratio; visible silhouette becomes a
   cloth banner with V-notched ends and gentle scalloped bottom.
   ============================================================= */

body.dragonbridge-large-hero .top-header.home-large-hero {
    -webkit-mask-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2172 724' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L2172,0 L2172,280 L2086,362 L2172,444 L2172,668 C1900,710 1628,690 1356,694 C1086,698 814,712 543,706 C361,702 180,696 0,668 L0,444 L86,362 L0,280 Z'/%3E%3C/svg%3E") !important;
    mask-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2172 724' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L2172,0 L2172,280 L2086,362 L2172,444 L2172,668 C1900,710 1628,690 1356,694 C1086,698 814,712 543,706 C361,702 180,696 0,668 L0,444 L86,362 L0,280 Z'/%3E%3C/svg%3E") !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    overflow: visible !important;
}

/* Decorative gold outline that traces the banner silhouette,
   layered above the image but inside the mask area. */
body.dragonbridge-large-hero .top-header.home-large-hero:after {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    inset: 0 !important;
    background: none !important;
    pointer-events: none !important;
    z-index: 6 !important;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2172 724' preserveAspectRatio='none'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='3' stroke-opacity='0.85' d='M4,4 L2168,4 L2168,280 L2082,362 L2168,444 L2168,664 C1900,706 1628,686 1356,690 C1086,694 814,708 543,702 C361,698 180,692 4,664 L4,444 L90,362 L4,280 Z'/%3E%3C/svg%3E") !important;
    background-size: 100% 100% !important;
    background-repeat: no-repeat !important;
    width: auto !important;
    height: auto !important;
    border: none !important;
    border-radius: 0 !important;
    line-height: normal !important;
    color: transparent !important;
    transform: none !important;
    animation: none !important;
}

/* Subtle drop-shadow under the banner gives it lift off the page. */
body.dragonbridge-large-hero .top-header.home-large-hero {
    filter: drop-shadow(0 10px 24px rgba(74, 14, 14, 0.25))
            drop-shadow(0 3px 6px rgba(0, 0, 0, 0.15));
}

/* Small "tassel" ornaments hanging from the V-notch tips */
body.dragonbridge-large-hero .top-header.home-large-hero .single-image:after {
    /* the gradient overlay was killed earlier — leave it dead */
    display: none !important;
}

/* On narrow viewports, simplify the mask (less scallop curvature)
   so the banner reads cleanly at small sizes. */
@media (max-width: 600px) {
    body.dragonbridge-large-hero .top-header.home-large-hero,
    body.dragonbridge-large-hero .top-header.home-large-hero:after {
        -webkit-mask-image:
            url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2172 724' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L2172,0 L2172,300 L2110,362 L2172,424 L2172,710 L0,710 L0,424 L62,362 L0,300 Z'/%3E%3C/svg%3E") !important;
        mask-image:
            url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2172 724' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L2172,0 L2172,300 L2110,362 L2172,424 L2172,710 L0,710 L0,424 L62,362 L0,300 Z'/%3E%3C/svg%3E") !important;
    }
}

/* =============================================================
   DragonBridge — Visibility Boost & Fixes (v1.0.8)
   Hardens heading colors, makes textures visible, repositions the
   pennants reliably, and adds high-contrast decorative elements.
   ============================================================= */

/* ---------- HEADING COLOR LOCK ----------
   Force every content heading to render in the burgundy primary.
   The previous rules without !important were getting overridden by
   block-editor inline color styles. */
body h1, body h2, body h3, body h4, body h5, body h6,
.entry-content h1, .entry-content h2, .entry-content h3,
.entry-content h4, .entry-content h5, .entry-content h6,
.home-page-content h1, .home-page-content h2, .home-page-content h3,
.home-page-content h4, .home-page-content h5, .home-page-content h6,
.wp-block-heading,
.wp-block-post-title,
.single-entry-summary h1, .single-entry-summary h2, .single-entry-summary h3,
article h1, article h2, article h3, article h4, article h5, article h6 {
    color: var(--db-burgundy) !important;
    font-family: 'Cinzel', 'Trajan Pro', Georgia, serif !important;
}

/* Body text on home / page content also locked to ink color so any
   theme-color leak from page builders is suppressed. */
.home-page-content,
.home-page-content p,
.home-page-content li {
    color: var(--db-ink) !important;
}

/* The shimmer-gold effect is ONLY for hero titles. Force-override any
   accidental background-clip leak onto body content. */
body h1, body h2, body h3,
.entry-content h1, .entry-content h2, .entry-content h3,
.home-page-content h1, .home-page-content h2, .home-page-content h3,
.wp-block-heading {
    background: none !important;
    background-image: none !important;
    -webkit-text-fill-color: var(--db-burgundy) !important;
    text-fill-color: var(--db-burgundy) !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    -webkit-text-stroke: 0 !important;
    text-shadow: none !important;
    animation: none !important;
}

/* Re-enable shimmer for hero titles only */
.top-header .header-site-title,
.top-header .single-title {
    background-image: linear-gradient(
        100deg,
        #E5C46A 0%,
        #FFF3D2 35%,
        #FFFFFF 50%,
        #FFF3D2 65%,
        #E5C46A 100%
    ) !important;
    background-size: 200% auto !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    -webkit-text-fill-color: transparent !important;
    color: transparent !important;
}

/* ---------- POSITION HARDENING ----------
   Make sure .site-header always establishes a positioned ancestor
   for its pseudo-elements (pennants + crenellation). */
.site-header,
.site-header.business-heading,
.site-header.woo-heading {
    position: relative;
}

@media (min-width: 992px) {
    .site-header.business-heading {
        position: sticky;
        top: 0;
    }
}

/* ---------- PENNANT BAND (RELIABLE PLACEMENT) ----------
   The previous .site-header:before pennants weren't surviving the
   sticky stacking context on some builds. Move them to a band that's
   appended after the header via the main-container's :before, which
   sits in the normal document flow and is always visible. */

.site-header:before { display: none !important; }
.main-menu:before { display: none !important; }

.main-container,
#site-content.main-container {
    position: relative;
}

.main-container:before {
    content: "";
    display: block;
    position: relative;
    width: 100%;
    height: 32px;
    margin: 0 0 24px 0;
    background-image:
        linear-gradient(180deg, transparent 0%, transparent 1px, var(--db-gold) 1px, var(--db-gold) 2px, transparent 2px),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='32' viewBox='0 0 120 32'%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='1' points='2,2 22,2 12,28'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='1' points='22,2 42,2 32,28'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='1' points='42,2 62,2 52,28'/%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='1' points='62,2 82,2 72,28'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='1' points='82,2 102,2 92,28'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='1' points='102,2 122,2 112,28'/%3E%3C/svg%3E");
    background-repeat: no-repeat, repeat-x;
    background-size: auto, 120px 32px;
    background-position: 0 0, 0 0;
    filter: drop-shadow(0 4px 4px rgba(0,0,0,0.18));
    animation: db-pennant-sway 6s ease-in-out infinite alternate;
    transform-origin: top center;
    z-index: 10;
}

/* For the home large-hero template the pennants should hang ABOVE
   the hero — render them inside .top-header :before instead. */
body.dragonbridge-large-hero .main-container:before { display: none; }

body.dragonbridge-large-hero .top-header.home-large-hero {
    margin-top: 48px !important;
}

body.dragonbridge-large-hero .top-header.home-large-hero {
    /* keep the existing mask + outline */
}

/* A pennant band is injected as a sibling of the hero, but since we
   can't add markup we attach it to the body before the hero via fixed
   positioning of an extra layer at the top of the page-wrap. */
body.dragonbridge-large-hero .page-wrap > .site-header + * {
    position: relative;
}

/* Pennant band as a flex item before the hero — using
   .page-area:before since page-area wraps everything below the header. */
.page-area {
    position: relative;
}

.page-area:before {
    content: "";
    display: block;
    width: 100%;
    height: 32px;
    margin-bottom: 12px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='120' height='32' viewBox='0 0 120 32'%3E%3Cpath stroke='%23C9A961' stroke-width='1' d='M0,2 L120,2'/%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='0.8' points='3,2 23,2 13,28'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='0.8' points='23,2 43,2 33,28'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='0.8' points='43,2 63,2 53,28'/%3E%3Cpolygon fill='%236B1414' stroke='%234A0E0E' stroke-width='0.8' points='63,2 83,2 73,28'/%3E%3Cpolygon fill='%23C9A961' stroke='%23A88840' stroke-width='0.8' points='83,2 103,2 93,28'/%3E%3Cpolygon fill='%231F4A2C' stroke='%23143820' stroke-width='0.8' points='103,2 123,2 113,28'/%3E%3C/svg%3E");
    background-repeat: repeat-x;
    background-size: 120px 32px;
    filter: drop-shadow(0 3px 4px rgba(0,0,0,0.2));
    animation: db-pennant-sway 6s ease-in-out infinite alternate;
    transform-origin: top center;
    position: relative;
    z-index: 5;
}

/* Don't double up the pennant band on home template */
body.dragonbridge-large-hero .main-container:before,
body.dragonbridge-large-hero .page-area:before {
    /* page-area:before is the right one — keep main-container:before hidden */
}
body.dragonbridge-large-hero .main-container:before { display: none !important; }

/* ---------- VISIBLE PARCHMENT TEXTURE ----------
   Bump opacity so the paper grain is actually perceptible. */
body {
    background-image:
        radial-gradient(at 18% 12%, rgba(201, 169, 97, 0.22) 0px, transparent 55%),
        radial-gradient(at 82% 88%, rgba(107, 20, 20, 0.16) 0px, transparent 55%),
        radial-gradient(at 78% 18%, rgba(31, 74, 44, 0.08) 0px, transparent 50%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='280' height='280'%3E%3Cfilter id='nb1'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='0.7' numOctaves='3' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.22  0 0 0 0 0.12  0 0 0 0 0.06  0 0 0 0.7 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23nb1)' opacity='1'/%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-parchment-light) 0%, var(--db-parchment) 60%, var(--db-parchment-warm) 100%) !important;
    background-size: auto, auto, auto, 280px 280px, auto !important;
    background-repeat: no-repeat, no-repeat, no-repeat, repeat, no-repeat !important;
    background-attachment: fixed, fixed, fixed, fixed, fixed !important;
}

/* ---------- VISIBLE CARD TEXTURE ----------
   Damask + fleur lattice at perceptible opacity. */
article.content-article,
.post.hentry,
.hentry,
.home-page-content,
.col-md-12 > article {
    background-image:
        linear-gradient(135deg, transparent calc(100% - 40px), rgba(74,14,14,0.14) calc(100% - 40px), rgba(74,14,14,0.22) calc(100% - 20px), transparent 100%),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='56' height='56' viewBox='0 0 56 56'%3E%3Cg fill='%23C9A961' fill-opacity='0.16'%3E%3Cpath d='M28,8 Q31,16 28,22 Q25,16 28,8 Z M22,22 Q19,28 22,33 L28,28 L34,33 Q37,28 34,22 Q28,28 22,22 Z M26,34 L30,34 L30,38 L26,38 Z'/%3E%3C/g%3E%3C/svg%3E"),
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='200'%3E%3Cfilter id='nb2'%3E%3CfeTurbulence type='fractalNoise' baseFrequency='1.0' numOctaves='2' stitchTiles='stitch'/%3E%3CfeColorMatrix values='0 0 0 0 0.22  0 0 0 0 0.11  0 0 0 0 0.05  0 0 0 0.5 0'/%3E%3C/filter%3E%3Crect width='100%25' height='100%25' filter='url(%23nb2)' opacity='0.6'/%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-parchment-light) 0%, var(--db-parchment-warm) 100%) !important;
    background-repeat: no-repeat, repeat, repeat, no-repeat !important;
    background-size: 80px 80px, 56px 56px, 200px 200px, auto !important;
    background-position: bottom right, center, center, 0 0 !important;
}

/* ---------- HOME PAGE CONTENT: HERALDIC FRAME ----------
   Add a visible decorative frame around the home page content area
   so it doesn't read as plain text. */
body.dragonbridge-large-hero .home-page-content {
    position: relative;
    padding: 50px 40px !important;
    margin: 30px auto !important;
    max-width: 1100px;
    background: var(--db-parchment-light);
    border: 1px solid var(--db-gold);
    box-shadow:
        0 0 0 6px var(--db-parchment),
        0 0 0 7px var(--db-gold),
        0 10px 30px rgba(74, 14, 14, 0.18);
}

body.dragonbridge-large-hero .home-page-content:before,
body.dragonbridge-large-hero .home-page-content:after {
    content: "";
    position: absolute;
    width: 56px;
    height: 56px;
    pointer-events: none;
    z-index: 2;
}

/* Top-left corner ornament */
body.dragonbridge-large-hero .home-page-content:before {
    top: -4px;
    left: -4px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='2' d='M2,28 L2,2 L28,2 M2,18 Q12,12 18,2 M10,10 L18,18'/%3E%3Ccircle cx='10' cy='10' r='2' fill='%236B1414' stroke='%23C9A961' stroke-width='1'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}

/* Bottom-right corner ornament */
body.dragonbridge-large-hero .home-page-content:after {
    bottom: -4px;
    right: -4px;
    background-image: url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 56 56'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='2' d='M54,28 L54,54 L28,54 M54,38 Q44,44 38,54 M46,46 L38,38'/%3E%3Ccircle cx='46' cy='46' r='2' fill='%236B1414' stroke='%23C9A961' stroke-width='1'/%3E%3C/svg%3E");
    background-repeat: no-repeat;
    background-size: contain;
}

/* Headings inside home content get an ornament */
body.dragonbridge-large-hero .home-page-content > h1,
body.dragonbridge-large-hero .home-page-content > h2,
body.dragonbridge-large-hero .home-page-content > .wp-block-heading {
    position: relative;
    padding-bottom: 0.5em !important;
    margin-bottom: 0.8em !important;
    text-align: center !important;
}

body.dragonbridge-large-hero .home-page-content > h1:after,
body.dragonbridge-large-hero .home-page-content > h2:after,
body.dragonbridge-large-hero .home-page-content > .wp-block-heading:after {
    content: "❦ ⚔ ❦";
    display: block;
    color: var(--db-gold-deep);
    font-size: 0.55em;
    letter-spacing: 0.6em;
    margin-top: 0.5em;
    opacity: 0.85;
}

/* First paragraph after the heading gets emphasized */
body.dragonbridge-large-hero .home-page-content > h1 + p,
body.dragonbridge-large-hero .home-page-content > h2 + p,
body.dragonbridge-large-hero .home-page-content > .wp-block-heading + p {
    font-size: 1.25rem !important;
    text-align: center !important;
    color: var(--db-ink-soft) !important;
    font-style: italic;
    margin-bottom: 1.5em !important;
}

/* ---------- A VISIBLE HERALDIC SHIELD WATERMARK ----------
   Big gold heraldic shield silhouette behind the home content area. */
body.dragonbridge-large-hero .home-page-content {
    background-image:
        url("data:image/svg+xml;utf8,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 240'%3E%3Cpath fill='%23C9A961' fill-opacity='0.08' d='M100,10 L180,30 L180,120 Q180,180 100,225 Q20,180 20,120 L20,30 Z'/%3E%3Cpath fill='%236B1414' fill-opacity='0.04' d='M100,30 L160,45 L160,120 Q160,170 100,205 Q40,170 40,120 L40,45 Z'/%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='1.5' stroke-opacity='0.2' d='M100,30 L160,45 L160,120 Q160,170 100,205 Q40,170 40,120 L40,45 Z'/%3E%3C/svg%3E"),
        linear-gradient(180deg, var(--db-parchment-light) 0%, var(--db-parchment-warm) 100%) !important;
    background-repeat: no-repeat, no-repeat !important;
    background-size: 360px 432px, auto !important;
    background-position: center 80px, 0 0 !important;
}

/* Restore corner brackets behavior on bento articles since we
   overrode the background. */
.col-md-12 > article.content-article,
.page-area > article.content-article {
    border: 1px solid var(--db-gold) !important;
    border-top: 4px solid var(--db-burgundy) !important;
}

/* ---------- VISIBLE GOLD DIVIDERS AT KEY SPOTS ---------- */


/* ---------- HOVER STATE FOR THE HOME CONTENT FRAME ---------- */
body.dragonbridge-large-hero .home-page-content:hover {
    box-shadow:
        0 0 0 6px var(--db-parchment),
        0 0 0 7px var(--db-gold-bright),
        0 14px 40px rgba(74, 14, 14, 0.24);
}

/* ---------- ENSURE ARTICLE PADDING IS PROPER ---------- */
article.content-article,
.post.hentry,
.hentry {
    padding: 32px !important;
    min-height: 100px;
}

/* ---------- VISIBLE TOP DECORATIVE STRIP ON CONTENT AREA ----------
   A burgundy ribbon at the very top of the main content container. */
#site-content.main-container {
    padding-top: 0;
}

/* ---------- REMOVE the broken hero ornament that was floating ---------- */
.top-header .header-title:after {
    /* the wax seal stamp was depending on .header-title rendering — on the
       home large-hero template .header-title doesn't exist, so this is moot. */
}

/* ---------- Reduced-motion: stop the new pennant sway too ---------- */
@media (prefers-reduced-motion: reduce) {
    .main-container:before,
    .page-area:before {
        animation: none !important;
    }
}

/* ---------- Print: hide the new decorations ---------- */
@media print {
    .main-container:before,
    .page-area:before,
    .home-page-content:before,
    .home-page-content:after { display: none !important; }
}

/* =============================================================
   DragonBridge — Sub-page Fixes (v1.0.9)
   Kills the dramatic hero arches, locks down heading/body colors
   with extreme specificity, forces visible pennants.
   ============================================================= */

/* ---------- KILL THE DRAMATIC ARCHED HERO MASK ----------
   The Romanesque arches were too aggressive for the slim 240px hero
   and cut into the image. Replace with a clean rectangle + a subtle
   gold trim line at the bottom. */
.top-header,
.top-header.home-heading,
.top-header.singular-heading {
    -webkit-mask-image: none !important;
    mask-image: none !important;
    border-bottom: 4px solid var(--db-burgundy-deep) !important;
    box-shadow: inset 0 -8px 0 var(--db-gold),
                inset 0 -10px 0 var(--db-burgundy-deep) !important;
}

/* Kill the curved gold arcade trim that paired with the arches */
.top-header:before {
    display: none !important;
    content: none !important;
}

/* Home large-hero template still uses its own mask (banner ribbon) —
   reapply that mask exclusively for that template since the global rule
   above just turned it off. */
body.dragonbridge-large-hero .top-header.home-large-hero {
    -webkit-mask-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2172 724' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L2172,0 L2172,280 L2086,362 L2172,444 L2172,668 C1900,710 1628,690 1356,694 C1086,698 814,712 543,706 C361,702 180,696 0,668 L0,444 L86,362 L0,280 Z'/%3E%3C/svg%3E") !important;
    mask-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 2172 724' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L2172,0 L2172,280 L2086,362 L2172,444 L2172,668 C1900,710 1628,690 1356,694 C1086,698 814,712 543,706 C361,702 180,696 0,668 L0,444 L86,362 L0,280 Z'/%3E%3C/svg%3E") !important;
    border-bottom: none !important;
    box-shadow: none !important;
}

/* ---------- HEADING COLOR: MAXIMUM SPECIFICITY ----------
   Use html body chain + direct hex so nothing in the cascade can win. */
html body h1,
html body h2,
html body h3,
html body h4,
html body h5,
html body h6,
html body .entry-content h1,
html body .entry-content h2,
html body .entry-content h3,
html body .entry-content h4,
html body .entry-content h5,
html body .entry-content h6,
html body .entry-content p strong,
html body .entry-content strong,
html body article p strong:first-child,
html body article h1,
html body article h2,
html body article h3,
html body .single-entry-summary h1,
html body .single-entry-summary h2,
html body .single-entry-summary h3,
html body .wp-block-heading,
html body .wp-block-post-title,
html body .single-content h1,
html body .single-content h2,
html body .single-content h3 {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    text-fill-color: #6B1414 !important;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    text-shadow: none !important;
    opacity: 1 !important;
    filter: none !important;
}

/* Re-enable shimmer ONLY on hero titles (these specific selectors win
   over the above thanks to the .top-header chain). */
html body .top-header .header-site-title,
html body .top-header .single-title,
html body .top-header.singular-heading .single-title {
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    background: linear-gradient(
        100deg,
        #E5C46A 0%,
        #FFF3D2 35%,
        #FFFFFF 50%,
        #FFF3D2 65%,
        #E5C46A 100%
    ) !important;
    background-size: 200% auto !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
}

/* ---------- BODY TEXT COLOR LOCKDOWN ----------
   Use direct hex so var() resolution can't be sabotaged. */
html body,
html body p,
html body li,
html body td,
html body article p,
html body article li,
html body .single-entry-summary p,
html body .single-entry-summary li,
html body .single-content p,
html body .single-content li,
html body .entry-content p,
html body .entry-content li {
    color: #2A1810 !important;
}

/* Re-allow the muted ink-soft color on meta lines */
html body .article-meta,
html body .article-meta *,
html body .entry-footer,
html body .comment-metadata,
html body .nav-subtitle,
html body #breadcrumbs {
    color: #4A352A !important;
}

/* Footer text uses the parchment color on burgundy — re-allow */
html body #content-footer-section,
html body #content-footer-section p,
html body #content-footer-section li,
html body #content-footer-section h1,
html body #content-footer-section h2,
html body #content-footer-section h3,
html body #content-footer-section h4,
html body #content-footer-section .widget,
html body .footer-credits,
html body .footer-credits p,
html body .footer-credits a {
    color: #F5EBD6 !important;
}

html body #content-footer-section .widget-title h3,
html body #content-footer-section h3,
html body #content-footer-section a {
    color: #E5C46A !important;
}

/* Burgundy navbar links stay near-white */
html body #site-navigation .nav.navbar-nav > li > a,
html body #second-site-navigation .nav.navbar-nav > li > a,
html body .menu-container ul > li > a,
html body .top-bar-section,
html body .top-bar-section a {
    color: #FFF3D2 !important;
}

/* ---------- PENNANTS: PURE CSS, NO SVG DEPENDENCY ----------
   The earlier SVG-based pennants weren't rendering reliably on every
   build. Rebuild as pure CSS triangles via conic-gradient + mask, with
   a fallback that works in every modern browser. */

.site-header:before,
.main-menu:before { display: none !important; }

.main-container:before,
.page-area:before {
    content: "" !important;
    display: block !important;
    width: 100% !important;
    height: 36px !important;
    margin: 0 0 20px 0 !important;
    position: relative !important;
    z-index: 5 !important;
    background-color: transparent;
    /* gold cord line + repeating triangle flags drawn with conic-gradient */
    background-image:
        /* horizontal gold cord */
        linear-gradient(to bottom, transparent 0, transparent 2px, #C9A961 2px, #C9A961 3px, transparent 3px),
        /* burgundy flag */
        linear-gradient(135deg, #6B1414 0%, #6B1414 50%, transparent 50%),
        linear-gradient(225deg, #6B1414 0%, #6B1414 50%, transparent 50%),
        /* gold flag */
        linear-gradient(135deg, #C9A961 0%, #C9A961 50%, transparent 50%),
        linear-gradient(225deg, #C9A961 0%, #C9A961 50%, transparent 50%),
        /* forest flag */
        linear-gradient(135deg, #1F4A2C 0%, #1F4A2C 50%, transparent 50%),
        linear-gradient(225deg, #1F4A2C 0%, #1F4A2C 50%, transparent 50%) !important;
    background-size:
        100% 100%,
        /* burgundy */ 20px 32px, 20px 32px,
        /* gold */ 20px 32px, 20px 32px,
        /* forest */ 20px 32px, 20px 32px !important;
    background-position:
        0 0,
        /* burgundy at x=0 */ 0 3px, 10px 3px,
        /* gold at x=60 */ 60px 3px, 70px 3px,
        /* forest at x=120 */ 120px 3px, 130px 3px !important;
    background-repeat:
        no-repeat,
        repeat-x, repeat-x,
        repeat-x, repeat-x,
        repeat-x, repeat-x !important;
    filter: drop-shadow(0 3px 3px rgba(0,0,0,0.25));
}

/* Even simpler / more reliable: use a clean SVG attached differently.
   The triangles above stack but can look glitchy at sub-pixel; this
   SVG layer is the primary pennant render. Both stack — only one will
   show fully thanks to background-image override above being later. */

.main-container:before,
.page-area:before {
    background-image:
        url("data:image/svg+xml,%3Csvg%20xmlns='http://www.w3.org/2000/svg'%20width='180'%20height='36'%20viewBox='0%200%20180%2036'%3E%3Cline%20x1='0'%20y1='2'%20x2='180'%20y2='2'%20stroke='%23C9A961'%20stroke-width='1.5'/%3E%3Cpolygon%20fill='%236B1414'%20stroke='%234A0E0E'%20stroke-width='1'%20points='4,2%2024,2%2014,30'/%3E%3Cpolygon%20fill='%23C9A961'%20stroke='%23A88840'%20stroke-width='1'%20points='34,2%2054,2%2044,30'/%3E%3Cpolygon%20fill='%231F4A2C'%20stroke='%23143820'%20stroke-width='1'%20points='64,2%2084,2%2074,30'/%3E%3Cpolygon%20fill='%236B1414'%20stroke='%234A0E0E'%20stroke-width='1'%20points='94,2%20114,2%20104,30'/%3E%3Cpolygon%20fill='%23C9A961'%20stroke='%23A88840'%20stroke-width='1'%20points='124,2%20144,2%20134,30'/%3E%3Cpolygon%20fill='%231F4A2C'%20stroke='%23143820'%20stroke-width='1'%20points='154,2%20174,2%20164,30'/%3E%3C/svg%3E") !important;
    background-size: 180px 36px !important;
    background-position: 0 0 !important;
    background-repeat: repeat-x !important;
    background-color: transparent !important;
}

/* Hide pennants on the home large-hero (it has its own visual rhythm) */
body.dragonbridge-large-hero .main-container:before,
body.dragonbridge-large-hero .page-area:before { display: none !important; }

/* Also add pennants HANGING from below the hero on sub-pages
   so users see them right under the image. */
.top-header.singular-heading {
    position: relative;
    overflow: visible !important;
}

.top-header.singular-heading + * {
    position: relative;
}

/* ---------- SUB-PAGE HERO: shorter, calmer ----------
   The dramatic arch was the worst part. The hero is now a clean
   short banner with a gold trim and no distortion. */
.top-header.singular-heading,
.top-header.singular-heading .single-image,
.top-header.singular-heading .bg-single-image {
    height: 220px !important;
    min-height: 220px !important;
    max-height: 220px !important;
}

@media (max-width: 768px) {
    .top-header.singular-heading,
    .top-header.singular-heading .single-image,
    .top-header.singular-heading .bg-single-image {
        height: 140px !important;
        min-height: 140px !important;
        max-height: 140px !important;
    }
}

/* Less aggressive overlay so the photo reads well */
.top-header.singular-heading .single-image:after {
    background:
        linear-gradient(180deg,
            rgba(20, 10, 10, 0.20) 0%,
            rgba(20, 10, 10, 0.10) 40%,
            rgba(20, 10, 10, 0.20) 70%,
            rgba(74, 14, 14, 0.40) 100%) !important;
}

.top-header.singular-heading .bg-single-image {
    filter: blur(0px) sepia(0.10) brightness(0.92) !important;
    -webkit-filter: blur(0px) sepia(0.10) brightness(0.92) !important;
}

/* Wax seal in the hero corner — make it smaller on sub-pages */
.top-header.singular-heading .header-title:after {
    width: 60px !important;
    height: 60px !important;
    top: -16px !important;
    right: 8px !important;
}

/* The title overlay on sub-pages: white shimmer fits well */
.top-header.singular-heading .single-title {
    font-size: clamp(1.6rem, 3vw, 2.4rem) !important;
    margin: 0 !important;
}

/* ---------- BUMP THE ALL-ARTICLE CARD VISIBILITY ----------
   Make sure the gold border + corner brackets are crisp. */
html body article.content-article,
html body .post.hentry,
html body .hentry {
    border: 2px solid #C9A961 !important;
    border-top: 6px solid #6B1414 !important;
    box-shadow:
        0 2px 8px rgba(74, 14, 14, 0.12),
        0 14px 32px rgba(74, 14, 14, 0.10) !important;
}

/* ---------- LINK CONTRAST INSIDE CONTENT ---------- */
html body .entry-content a,
html body .single-entry-summary a,
html body .single-content a,
html body article p a {
    color: #6B1414 !important;
    font-weight: 600;
    border-bottom: 2px solid #C9A961;
    padding: 0 2px;
}

html body .entry-content a:hover,
html body .single-entry-summary a:hover,
html body .single-content a:hover,
html body article p a:hover {
    background: #6B1414 !important;
    color: #FFF3D2 !important;
    border-bottom-color: #6B1414;
}

/* ---------- "Sub-page" content card: same heraldic frame as home ----------
   So sub-pages have the same illuminated-page look. */
@media (min-width: 768px) {
    html body article.content-article > .single-content,
    html body article.content-article > .single-entry-summary {
        padding: 20px 30px;
    }
}

/* ---------- Reduce-motion: stop the new band animations ---------- */
@media (prefers-reduced-motion: reduce) {
    .main-container:before,
    .page-area:before { animation: none !important; }
}

/* ---------- Print ---------- */
@media print {
    .main-container:before,
    .page-area:before { display: none !important; }
}

/* =============================================================
   DragonBridge — Torn-Paper Hero Mask (v1.1.0)
   Hand-ripped paper edge applied to every hero image:
   sub-pages, blog home, and the large home banner.
   ============================================================= */

/* Wipe out earlier hero edge styling — straight-line borders, gold
   double-rules, banner-ribbon mask, arched mask all retire here. */
.top-header,
.top-header.home-heading,
.top-header.singular-heading,
body.dragonbridge-large-hero .top-header.home-large-hero {
    border-bottom: none !important;
    box-shadow: none !important;
}

.top-header:before,
.top-header:after,
body.dragonbridge-large-hero .top-header.home-large-hero:after {
    display: none !important;
    content: none !important;
    background-image: none !important;
}

/* Apply the torn-paper mask universally to every hero.
   - viewBox is 1000×100 so the tear scales with the container.
   - preserveAspectRatio='none' lets the path stretch to any width.
   - mask-position: bottom keeps the rip at the bottom edge.
   - mask-size: 100% 100% fills the whole hero so the top remains a
     clean rectangle and only the bottom is ripped. */
.top-header,
.top-header.home-heading,
.top-header.singular-heading,
body.dragonbridge-large-hero .top-header.home-large-hero {
    -webkit-mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L1000,0 L1000,72 L992,86 L984,68 L976,82 L968,60 L960,90 L952,74 L946,82 L938,66 L930,90 L922,78 L914,88 L906,64 L898,90 L890,74 L882,86 L874,68 L866,92 L858,76 L850,82 L842,62 L834,88 L826,72 L818,90 L810,76 L802,84 L794,64 L786,92 L778,74 L770,86 L762,68 L754,82 L746,78 L738,92 L730,64 L722,84 L714,72 L706,90 L698,76 L690,86 L682,66 L674,92 L666,74 L658,82 L650,62 L642,88 L634,78 L626,92 L618,68 L610,84 L602,72 L594,90 L586,76 L578,86 L570,64 L562,92 L554,74 L546,82 L538,66 L530,88 L522,78 L514,92 L506,68 L498,84 L490,72 L482,90 L474,76 L466,86 L458,62 L450,92 L442,74 L434,88 L426,68 L418,82 L410,78 L402,92 L394,66 L386,84 L378,72 L370,90 L362,76 L354,86 L346,64 L338,92 L330,74 L322,82 L314,62 L306,88 L298,78 L290,92 L282,68 L274,84 L266,72 L258,90 L250,76 L242,86 L234,66 L226,92 L218,74 L210,82 L202,62 L194,88 L186,78 L178,92 L170,68 L162,84 L154,72 L146,90 L138,76 L130,86 L122,64 L114,92 L106,74 L98,88 L90,68 L82,82 L74,78 L66,92 L58,66 L50,84 L42,72 L34,90 L26,76 L18,86 L10,68 L4,84 L0,76 Z'/%3E%3C/svg%3E") !important;
    mask-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 1000 100' preserveAspectRatio='none'%3E%3Cpath fill='black' d='M0,0 L1000,0 L1000,72 L992,86 L984,68 L976,82 L968,60 L960,90 L952,74 L946,82 L938,66 L930,90 L922,78 L914,88 L906,64 L898,90 L890,74 L882,86 L874,68 L866,92 L858,76 L850,82 L842,62 L834,88 L826,72 L818,90 L810,76 L802,84 L794,64 L786,92 L778,74 L770,86 L762,68 L754,82 L746,78 L738,92 L730,64 L722,84 L714,72 L706,90 L698,76 L690,86 L682,66 L674,92 L666,74 L658,82 L650,62 L642,88 L634,78 L626,92 L618,68 L610,84 L602,72 L594,90 L586,76 L578,86 L570,64 L562,92 L554,74 L546,82 L538,66 L530,88 L522,78 L514,92 L506,68 L498,84 L490,72 L482,90 L474,76 L466,86 L458,62 L450,92 L442,74 L434,88 L426,68 L418,82 L410,78 L402,92 L394,66 L386,84 L378,72 L370,90 L362,76 L354,86 L346,64 L338,92 L330,74 L322,82 L314,62 L306,88 L298,78 L290,92 L282,68 L274,84 L266,72 L258,90 L250,76 L242,86 L234,66 L226,92 L218,74 L210,82 L202,62 L194,88 L186,78 L178,92 L170,68 L162,84 L154,72 L146,90 L138,76 L130,86 L122,64 L114,92 L106,74 L98,88 L90,68 L82,82 L74,78 L66,92 L58,66 L50,84 L42,72 L34,90 L26,76 L18,86 L10,68 L4,84 L0,76 Z'/%3E%3C/svg%3E") !important;
    -webkit-mask-size: 100% 100% !important;
    mask-size: 100% 100% !important;
    -webkit-mask-repeat: no-repeat !important;
    mask-repeat: no-repeat !important;
    -webkit-mask-position: center !important;
    mask-position: center !important;
    -webkit-mask-mode: alpha;
    mask-mode: alpha;
    overflow: visible !important;
    filter: drop-shadow(0 6px 16px rgba(74, 14, 14, 0.18)) drop-shadow(0 2px 3px rgba(0,0,0,0.12));
}

/* Ensure the inner image fills the mask area cleanly without re-cropping. */
.top-header .single-image,
.top-header.singular-heading .single-image,
.top-header.home-heading .single-image,
body.dragonbridge-large-hero .top-header.home-large-hero .single-image {
    overflow: visible !important;
}

/* Sub-page hero: a tiny bit shorter so the torn area reads on a 220px
   container without dominating. Bump to 260px so the torn 28% has more
   room to express variation. */
.top-header.singular-heading,
.top-header.singular-heading .single-image,
.top-header.singular-heading .bg-single-image {
    height: 260px !important;
    min-height: 260px !important;
    max-height: 260px !important;
}

@media (max-width: 768px) {
    .top-header.singular-heading,
    .top-header.singular-heading .single-image,
    .top-header.singular-heading .bg-single-image {
        height: 170px !important;
        min-height: 170px !important;
        max-height: 170px !important;
    }
}

/* Reduce-motion: drop-shadow is fine, but if the user later opts in to
   any animation here, this guard exists. */
@media (prefers-reduced-motion: reduce) {
    .top-header { filter: none !important; }
}

/* Print: kill the mask entirely so printed pages show a clean rectangle */
@media print {
    .top-header,
    .top-header.home-heading,
    .top-header.singular-heading,
    body.dragonbridge-large-hero .top-header.home-large-hero {
        -webkit-mask-image: none !important;
        mask-image: none !important;
        filter: none !important;
    }
}

/* =============================================================
   DragonBridge — Logo Inspired Elements (v1.2.0)
   Pulled from the Treasure Coast Renaissance Festival logo:
   • Laurel leaf garlands (the green cascading vines)
   • Curled banner ribbon with fleur V-notch (the burgundy tails)
   • Gold scrollwork frame motif
   • Green-on-burgundy contrast accents
   • Reliable visible backgrounds (no feTurbulence dependency)
   ============================================================= */

/* ---------- RELIABLE PARCHMENT TEXTURE ----------
   The earlier feTurbulence noise wasn't rendering on every browser.
   Replaced with explicit SVG dot+fiber pattern at perceptible opacity. */
html body {
    background-color: #F5EBD6 !important;
    background-image:
        radial-gradient(ellipse 60% 50% at 12% 14%, rgba(201, 169, 97, 0.28) 0%, transparent 55%),
        radial-gradient(ellipse 55% 50% at 88% 86%, rgba(107, 20, 20, 0.20) 0%, transparent 55%),
        radial-gradient(ellipse 45% 40% at 78% 16%, rgba(31, 74, 44, 0.14) 0%, transparent 55%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='140' height='140' viewBox='0 0 140 140'%3E%3Cg fill='%237A4F2A'%3E%3Ccircle cx='13' cy='27' r='1' fill-opacity='0.18'/%3E%3Ccircle cx='67' cy='13' r='1' fill-opacity='0.14'/%3E%3Ccircle cx='42' cy='71' r='0.8' fill-opacity='0.20'/%3E%3Ccircle cx='87' cy='53' r='1' fill-opacity='0.16'/%3E%3Ccircle cx='23' cy='89' r='0.8' fill-opacity='0.18'/%3E%3Ccircle cx='119' cy='91' r='1' fill-opacity='0.14'/%3E%3Ccircle cx='5' cy='53' r='0.9' fill-opacity='0.18'/%3E%3Ccircle cx='57' cy='37' r='1.2' fill-opacity='0.12'/%3E%3Ccircle cx='33' cy='115' r='0.8' fill-opacity='0.18'/%3E%3Ccircle cx='99' cy='123' r='1' fill-opacity='0.14'/%3E%3Ccircle cx='77' cy='99' r='0.9' fill-opacity='0.16'/%3E%3Ccircle cx='127' cy='37' r='0.8' fill-opacity='0.16'/%3E%3Ccircle cx='47' cy='3' r='1' fill-opacity='0.14'/%3E%3C/g%3E%3Cg stroke='%237A4F2A' stroke-width='0.5' fill='none'%3E%3Cpath d='M0,42 Q35,40 70,43 Q105,46 140,41' stroke-opacity='0.08'/%3E%3Cpath d='M0,78 Q35,82 70,76 Q105,72 140,79' stroke-opacity='0.08'/%3E%3Cpath d='M0,118 Q35,114 70,121 Q105,124 140,117' stroke-opacity='0.07'/%3E%3C/g%3E%3C/svg%3E") !important;
    background-repeat: no-repeat, no-repeat, no-repeat, repeat !important;
    background-size: auto, auto, auto, 140px 140px !important;
    background-attachment: fixed, fixed, fixed, fixed !important;
}

/* ---------- VISIBLE CARD TEXTURE (NO TURBULENCE) ----------
   Cards get an aged-parchment dot+linen pattern over the gradient. */
html body article.content-article,
html body .post.hentry,
html body .hentry {
    background-image:
        linear-gradient(135deg, transparent calc(100% - 40px), rgba(74,14,14,0.14) calc(100% - 40px), rgba(74,14,14,0.22) calc(100% - 20px), transparent 100%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='80' height='80' viewBox='0 0 80 80'%3E%3Cg fill='%23C9A961'%3E%3Cpath d='M40,12 Q42,18 40,22 Q38,18 40,12 Z M36,22 Q34,26 36,30 L40,26 L44,30 Q46,26 44,22 Q40,26 36,22 Z M38,32 L42,32 L42,36 L38,36 Z' fill-opacity='0.18'/%3E%3C/g%3E%3Cg fill='%237A4F2A'%3E%3Ccircle cx='12' cy='18' r='0.8' fill-opacity='0.14'/%3E%3Ccircle cx='62' cy='28' r='0.8' fill-opacity='0.12'/%3E%3Ccircle cx='8' cy='62' r='0.8' fill-opacity='0.14'/%3E%3Ccircle cx='68' cy='68' r='0.8' fill-opacity='0.12'/%3E%3C/g%3E%3Cg stroke='%237A4F2A' stroke-width='0.4' fill='none' stroke-opacity='0.08'%3E%3Cpath d='M0,48 Q40,45 80,49'/%3E%3C/g%3E%3C/svg%3E"),
        linear-gradient(180deg, #FAF4E4 0%, #EFE2C4 100%) !important;
    background-repeat: no-repeat, repeat, no-repeat !important;
    background-size: 80px 80px, 80px 80px, auto !important;
    background-position: bottom right, center, 0 0 !important;
}

/* Widgets get a more visible damask + dot pattern */
html body .widget {
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='44' height='44' viewBox='0 0 44 44'%3E%3Cg fill='none' stroke='%23C9A961' stroke-width='0.8' stroke-opacity='0.25'%3E%3Cpath d='M22,5 L39,22 L22,39 L5,22 Z'/%3E%3C/g%3E%3Ccircle cx='22' cy='22' r='1.5' fill='%23C9A961' fill-opacity='0.30'/%3E%3C/svg%3E"),
        linear-gradient(180deg, #FAF4E4 0%, #EFE2C4 100%) !important;
    background-repeat: repeat, no-repeat !important;
    background-size: 44px 44px, auto !important;
}

/* ---------- LAUREL LEAF GARLAND DIVIDER ----------
   The cascading leafy vines from the logo, rendered as a horizontal
   garland used as a section divider above/below content. */
.laurel-divider,
hr.wp-block-separator,
.entry-content hr {
    height: 32px !important;
    border: none !important;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='400' height='32' viewBox='0 0 400 32'%3E%3Cline x1='0' y1='16' x2='400' y2='16' stroke='%23C9A961' stroke-width='1.5' stroke-opacity='0.85'/%3E%3Cg fill='%231F4A2C'%3E%3Cpath d='M40,16 Q48,8 56,10 Q54,16 40,16 Z'/%3E%3Cpath d='M56,16 Q48,22 40,20 Q42,16 56,16 Z' fill='%23143820'/%3E%3Cpath d='M80,16 Q88,8 96,10 Q94,16 80,16 Z'/%3E%3Cpath d='M96,16 Q88,22 80,20 Q82,16 96,16 Z' fill='%23143820'/%3E%3Cpath d='M120,16 Q128,8 136,10 Q134,16 120,16 Z'/%3E%3Cpath d='M136,16 Q128,22 120,20 Q122,16 136,16 Z' fill='%23143820'/%3E%3Cpath d='M260,16 Q268,8 276,10 Q274,16 260,16 Z'/%3E%3Cpath d='M276,16 Q268,22 260,20 Q262,16 276,16 Z' fill='%23143820'/%3E%3Cpath d='M300,16 Q308,8 316,10 Q314,16 300,16 Z'/%3E%3Cpath d='M316,16 Q308,22 300,20 Q302,16 316,16 Z' fill='%23143820'/%3E%3Cpath d='M340,16 Q348,8 356,10 Q354,16 340,16 Z'/%3E%3Cpath d='M356,16 Q348,22 340,20 Q342,16 356,16 Z' fill='%23143820'/%3E%3C/g%3E%3Cg fill='%236B1414'%3E%3Cpath d='M195,8 Q200,4 205,8 L207,12 L203,11 L205,15 L201,12 L199,16 L197,12 L195,15 L197,11 L193,12 Z'/%3E%3C/g%3E%3Cg fill='%23C9A961'%3E%3Ccircle cx='200' cy='16' r='3' fill='%23C9A961'/%3E%3Ccircle cx='200' cy='16' r='1.5' fill='%236B1414'/%3E%3C/g%3E%3C/svg%3E") !important;
    background-size: 400px 32px !important;
    background-repeat: repeat-x !important;
    background-position: center !important;
    margin: 32px 0 !important;
    overflow: visible !important;
}

.entry-content hr:after,
hr.wp-block-separator:after {
    content: "" !important;
    display: none !important;
}

/* ---------- LAUREL GARLAND ABOVE CONTENT ----------
   A laurel band drawn at the top of the main content container,
   matching the leafy cascade from the logo. */
.main-container:after,
.page-area:after {
    content: "";
    display: block;
    width: 100%;
    height: 28px;
    margin-top: 30px;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='320' height='28' viewBox='0 0 320 28'%3E%3Cpath d='M0,14 Q80,10 160,14 Q240,18 320,14' stroke='%23C9A961' stroke-width='1.2' fill='none' stroke-opacity='0.7'/%3E%3Cg fill='%231F4A2C'%3E%3Cpath d='M30,14 Q38,7 46,9 Q44,14 30,14 Z'/%3E%3Cpath d='M46,14 Q38,21 30,19 Q32,14 46,14 Z' fill='%23143820'/%3E%3Cpath d='M70,14 Q78,7 86,9 Q84,14 70,14 Z'/%3E%3Cpath d='M86,14 Q78,21 70,19 Q72,14 86,14 Z' fill='%23143820'/%3E%3Cpath d='M234,14 Q242,7 250,9 Q248,14 234,14 Z'/%3E%3Cpath d='M250,14 Q242,21 234,19 Q236,14 250,14 Z' fill='%23143820'/%3E%3Cpath d='M274,14 Q282,7 290,9 Q288,14 274,14 Z'/%3E%3Cpath d='M290,14 Q282,21 274,19 Q276,14 290,14 Z' fill='%23143820'/%3E%3C/g%3E%3Cg fill='%23C9A961'%3E%3Ccircle cx='160' cy='14' r='5' stroke='%236B1414' stroke-width='1.2'/%3E%3Ctext x='160' y='17' text-anchor='middle' font-family='serif' font-size='6' font-weight='bold' fill='%236B1414'%3EDB%3C/text%3E%3C/g%3E%3C/svg%3E");
    background-size: 320px 28px;
    background-repeat: repeat-x;
    background-position: center;
    position: relative;
    z-index: 4;
    opacity: 0.95;
}

/* ---------- CURLED BANNER RIBBON SECTION HEADINGS ----------
   The burgundy curled ribbon with fleur-de-lis from the logo's left
   and right tails — applied to widget titles and section headers. */
html body .widget-title {
    margin: -24px -22px 18px -22px !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    padding: 14px 36px 14px 36px !important;
    position: relative !important;
    clip-path: polygon(
        0 0,
        100% 0,
        93% 50%,
        100% 100%,
        0 100%,
        7% 50%
    ) !important;
    border-bottom: none !important;
    box-shadow: 0 2px 6px rgba(0,0,0,0.20) !important;
}

html body .widget-title h3 {
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border-bottom: none !important;
    margin: 0 !important;
    padding: 0 !important;
    font-size: 1rem !important;
    letter-spacing: 0.1em !important;
    text-align: center;
    position: relative;
}

html body .widget-title h3:before {
    content: "❦";
    color: #E5C46A;
    margin-right: 8px;
    font-size: 0.9em;
}

html body .widget-title h3:after {
    content: "❦";
    color: #E5C46A;
    margin-left: 8px;
    font-size: 0.9em;
    display: inline-block !important;
    background: none !important;
    width: auto !important;
    height: auto !important;
    border: none !important;
}

/* Footer widget titles use the same shape on a darker fill */
html body #content-footer-section .widget-title {
    background: linear-gradient(180deg, rgba(0,0,0,0.32) 0%, rgba(0,0,0,0.5) 100%) !important;
    border-top: 1px solid #C9A961 !important;
    border-bottom: 1px solid #C9A961 !important;
}

/* ---------- HOMEPAGE HEADING: CURLED RIBBON BANNER ----------
   The featured home-page heading becomes a full curled banner. */
body.dragonbridge-large-hero .home-page-content > h1:first-child,
body.dragonbridge-large-hero .home-page-content > h2:first-child,
body.dragonbridge-large-hero .home-page-content > .wp-block-heading:first-child {
    display: block !important;
    margin: -50px -40px 40px -40px !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #FFF3D2 !important;
    -webkit-text-fill-color: #FFF3D2 !important;
    padding: 28px 80px !important;
    text-align: center !important;
    clip-path: polygon(
        0 0,
        100% 0,
        96% 50%,
        100% 100%,
        0 100%,
        4% 50%
    ) !important;
    font-size: clamp(1.4rem, 3vw, 2.2rem) !important;
    letter-spacing: 0.04em !important;
    position: relative;
    z-index: 6;
}

/* Fleur-de-lis ornaments inside the curled V-notches */
body.dragonbridge-large-hero .home-page-content > h1:first-child:before,
body.dragonbridge-large-hero .home-page-content > h2:first-child:before,
body.dragonbridge-large-hero .home-page-content > .wp-block-heading:first-child:before {
    content: "⚜";
    position: absolute !important;
    left: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #C9A961 !important;
    font-size: 1.6rem !important;
    -webkit-text-fill-color: #C9A961 !important;
}

body.dragonbridge-large-hero .home-page-content > h1:first-child:after,
body.dragonbridge-large-hero .home-page-content > h2:first-child:after,
body.dragonbridge-large-hero .home-page-content > .wp-block-heading:first-child:after {
    content: "⚜" !important;
    position: absolute !important;
    right: 10px !important;
    top: 50% !important;
    transform: translateY(-50%) !important;
    color: #C9A961 !important;
    font-size: 1.6rem !important;
    -webkit-text-fill-color: #C9A961 !important;
    display: block !important;
    background: none !important;
    margin: 0 !important;
    letter-spacing: normal !important;
    opacity: 1 !important;
}

/* ---------- LAUREL LEAF SIDE BORDERS ON CONTENT CARD ----------
   Cascading vertical leaf garlands down both sides of the content card
   on the home template, echoing the logo's side framing. */
body.dragonbridge-large-hero .home-page-content {
    background-image:
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='200' viewBox='0 0 40 200'%3E%3Cpath d='M20,0 Q22,50 20,100 Q18,150 20,200' stroke='%231F4A2C' stroke-width='1.5' fill='none' stroke-opacity='0.8'/%3E%3Cg fill='%231F4A2C' fill-opacity='0.9'%3E%3Cpath d='M20,20 Q12,16 8,22 Q14,26 20,20 Z'/%3E%3Cpath d='M20,20 Q28,16 32,22 Q26,26 20,20 Z' fill='%23143820'/%3E%3Cpath d='M20,50 Q12,46 8,52 Q14,56 20,50 Z'/%3E%3Cpath d='M20,50 Q28,46 32,52 Q26,56 20,50 Z' fill='%23143820'/%3E%3Cpath d='M20,85 Q12,81 8,87 Q14,91 20,85 Z'/%3E%3Cpath d='M20,85 Q28,81 32,87 Q26,91 20,85 Z' fill='%23143820'/%3E%3Cpath d='M20,118 Q12,114 8,120 Q14,124 20,118 Z'/%3E%3Cpath d='M20,118 Q28,114 32,120 Q26,124 20,118 Z' fill='%23143820'/%3E%3Cpath d='M20,150 Q12,146 8,152 Q14,156 20,150 Z'/%3E%3Cpath d='M20,150 Q28,146 32,152 Q26,156 20,150 Z' fill='%23143820'/%3E%3Cpath d='M20,182 Q12,178 8,184 Q14,188 20,182 Z'/%3E%3Cpath d='M20,182 Q28,178 32,184 Q26,188 20,182 Z' fill='%23143820'/%3E%3C/g%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='40' height='200' viewBox='0 0 40 200'%3E%3Cpath d='M20,0 Q22,50 20,100 Q18,150 20,200' stroke='%231F4A2C' stroke-width='1.5' fill='none' stroke-opacity='0.8'/%3E%3Cg fill='%231F4A2C' fill-opacity='0.9'%3E%3Cpath d='M20,20 Q12,16 8,22 Q14,26 20,20 Z'/%3E%3Cpath d='M20,20 Q28,16 32,22 Q26,26 20,20 Z' fill='%23143820'/%3E%3Cpath d='M20,50 Q12,46 8,52 Q14,56 20,50 Z'/%3E%3Cpath d='M20,50 Q28,46 32,52 Q26,56 20,50 Z' fill='%23143820'/%3E%3Cpath d='M20,85 Q12,81 8,87 Q14,91 20,85 Z'/%3E%3Cpath d='M20,85 Q28,81 32,87 Q26,91 20,85 Z' fill='%23143820'/%3E%3Cpath d='M20,118 Q12,114 8,120 Q14,124 20,118 Z'/%3E%3Cpath d='M20,118 Q28,114 32,120 Q26,124 20,118 Z' fill='%23143820'/%3E%3Cpath d='M20,150 Q12,146 8,152 Q14,156 20,150 Z'/%3E%3Cpath d='M20,150 Q28,146 32,152 Q26,156 20,150 Z' fill='%23143820'/%3E%3Cpath d='M20,182 Q12,178 8,184 Q14,188 20,182 Z'/%3E%3Cpath d='M20,182 Q28,178 32,184 Q26,188 20,182 Z' fill='%23143820'/%3E%3C/g%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 200 240'%3E%3Cpath fill='%23C9A961' fill-opacity='0.10' d='M100,10 L180,30 L180,120 Q180,180 100,225 Q20,180 20,120 L20,30 Z'/%3E%3Cpath fill='%236B1414' fill-opacity='0.05' d='M100,30 L160,45 L160,120 Q160,170 100,205 Q40,170 40,120 L40,45 Z'/%3E%3C/svg%3E"),
        linear-gradient(180deg, #FAF4E4 0%, #EFE2C4 100%) !important;
    background-repeat: repeat-y, repeat-y, no-repeat, no-repeat !important;
    background-size: 40px 200px, 40px 200px, 360px 432px, auto !important;
    background-position: left top, right top, center 80px, 0 0 !important;
    padding: 70px 80px 70px 80px !important;
}



/* ---------- DB MONOGRAM MEDALLION ----------
   The circular DB seal from the bottom of the logo, available as a
   reusable ornament class .db-medallion. Default: a floating medallion
   at the bottom of the page-area. */
.page-area:before {
    /* override the pennants on standard pages to ALSO show the DB seal */
    /* keep existing pennant rule from earlier — this is additive */
}

.db-monogram-seal,
.page-area > .db-monogram-seal {
    display: block;
    width: 64px;
    height: 64px;
    margin: 30px auto;
    background-image: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 64 64'%3E%3Ccircle cx='32' cy='32' r='30' fill='%231F4A2C' stroke='%23C9A961' stroke-width='2.5'/%3E%3Ccircle cx='32' cy='32' r='26' fill='none' stroke='%23C9A961' stroke-width='1' stroke-opacity='0.6'/%3E%3Ctext x='32' y='40' text-anchor='middle' font-family='serif' font-size='22' font-weight='bold' fill='%23C9A961'%3EDB%3C/text%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

/* ---------- ENHANCED GREEN FOREST ACCENTS (FROM LOGO) ----------
   The logo has prominent forest green. Bring that color into more
   theme elements so the green isn't just on category tags. */
html body article.content-article {
    border-top: 6px solid #6B1414 !important;
    border-right: 1px solid #C9A961 !important;
    border-left: 6px solid #1F4A2C !important;
    border-bottom: 1px solid #C9A961 !important;
}

/* Posted-date, author-meta, and similar meta lines get a green icon */
html body .article-meta .la,
html body .article-meta i,
html body .entry-footer .la,
html body .entry-footer i {
    color: #1F4A2C !important;
}

/* ---------- LOGO-STYLE BANNER FOR THE PAGE TITLE ----------
   The wax seal on the hero is replaced by a small DB medallion. */
.top-header.singular-heading .header-title:after {
    background:
        radial-gradient(circle at 30% 30%,
            #2C5C3A 0%, #1F4A2C 40%, #143820 100%) !important;
    box-shadow:
        inset 0 0 0 2px #C9A961,
        inset 0 0 0 4px #1F4A2C,
        inset 0 -4px 8px rgba(0,0,0,0.4),
        0 4px 12px rgba(0,0,0,0.4) !important;
}

/* ---------- TOP-BAR SECTION: visible parchment fiber on burgundy ---------- */
html body .top-bar-section {
    background-image:
        linear-gradient(180deg, #4A0E0E 0%, #3D0808 100%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='200' height='10' viewBox='0 0 200 10'%3E%3Cpath d='M0,5 Q25,3 50,5 Q75,7 100,5 Q125,3 150,5 Q175,7 200,5' stroke='%23C9A961' stroke-width='0.5' fill='none' stroke-opacity='0.25'/%3E%3Cpath d='M0,7 Q33,9 66,6 Q100,3 133,7 Q166,10 200,6' stroke='%23C9A961' stroke-width='0.4' fill='none' stroke-opacity='0.15'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat, repeat-x !important;
    background-size: auto, 200px 10px !important;
}

/* ---------- FOOTER: stone wall + dragon scales (more visible) ---------- */
html body #content-footer-section {
    background-color: #4A0E0E !important;
    background-image:
        linear-gradient(180deg, #6B1414 0%, #3D0808 100%),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='180' height='130' viewBox='0 0 180 130'%3E%3Cg fill='none' stroke='%23C9A961' stroke-width='0.6' stroke-opacity='0.20'%3E%3Cpath d='M0,32 L180,32 M0,65 L180,65 M0,98 L180,98'/%3E%3Cpath d='M45,0 L45,32 M115,0 L115,32 M25,32 L25,65 M80,32 L80,65 M145,32 L145,65 M55,65 L55,98 M125,65 L125,98 M35,98 L35,130 M100,98 L100,130 M155,98 L155,130'/%3E%3C/g%3E%3C/svg%3E"),
        url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' width='32' height='32' viewBox='0 0 32 32'%3E%3Cpath fill='none' stroke='%23C9A961' stroke-width='0.7' stroke-opacity='0.22' d='M0,16 Q8,4 16,16 Q24,4 32,16 M-16,32 Q-8,20 0,32 Q8,20 16,32 Q24,20 32,32 Q40,20 48,32 M16,0 Q24,-12 32,0'/%3E%3C/svg%3E") !important;
    background-repeat: no-repeat, repeat, repeat !important;
    background-size: auto, 180px 130px, 32px 32px !important;
    background-blend-mode: normal, overlay, overlay !important;
}

/* ---------- LOGO-STYLE BURGUNDY+GOLD HEADING UNDERLINE ----------
   Each major heading gets a small fleur-de-lis flanked by lines,
   matching the "TREASURE COAST" frame in the logo. */
html body h1:not(.site-title):not(.header-site-title):not(.widget-title h3):after,
html body h2:not(.site-title):not(.entry-title):not(.widget-title h3):after,
html body .wp-block-heading:after {
    content: "⸻ ⚜ ⸻";
    display: block;
    text-align: center;
    color: #C9A961;
    font-size: 0.5em;
    letter-spacing: 0.3em;
    margin-top: 0.4em;
    opacity: 0.85;
    line-height: 1;
}

/* Don't add the underline ornament inside the hero / footer */
html body .top-header h1:after,
html body .top-header h2:after,
html body #content-footer-section h2:after,
html body #content-footer-section h3:after,
html body .widget-title h3:after {
    content: "❦" !important;
}

/* ---------- DOUBLE-CHECK: BODY ATTACHMENT BACKGROUND PAINTING ----------
   On some shared hosts a security plugin strips inline SVG data URIs.
   As a last resort, layer a CSS-only repeating-gradient pattern on the
   page-wrap so users still see SOME visible texture. */
.page-wrap {
    background-image:
        repeating-linear-gradient(
            0deg,
            transparent 0,
            transparent 38px,
            rgba(122, 79, 42, 0.025) 38px,
            rgba(122, 79, 42, 0.025) 39px,
            transparent 39px,
            transparent 78px
        ),
        repeating-linear-gradient(
            90deg,
            transparent 0,
            transparent 62px,
            rgba(122, 79, 42, 0.020) 62px,
            rgba(122, 79, 42, 0.020) 63px,
            transparent 63px,
            transparent 124px
        );
}

/* ---------- Reduced-motion guard for any new animation ---------- */
@media (prefers-reduced-motion: reduce) {
    body { background-attachment: scroll !important; }
}

/* ---------- Print: hide ornaments ---------- */
@media print {
    .laurel-divider,
    hr.wp-block-separator,
    .entry-content hr,
    .main-container:after,
    .page-area:after,
    body.dragonbridge-large-hero .home-page-content:before,
    body.dragonbridge-large-hero .home-page-content:after { display: none !important; }
}

/* =============================================================
   DragonBridge — WooCommerce Table & Button Fixes (v1.2.1)
   Fixes the grouped-product table layout where alternating cells
   were rendering dark, and the Add to Cart button was rendering
   as an empty pill.
   ============================================================= */

/* ---------- KILL DARK CELL BACKGROUNDS ----------
   WooCommerce + the inherited Envo Royal woocommerce.css were
   painting certain td columns with dark fills. Force every cell
   in shop_table to parchment with burgundy ink text. */
html body .woocommerce table.shop_table,
html body .woocommerce-page table.shop_table,
html body table.woocommerce-grouped-product-list,
html body table.group_table,
html body .woocommerce table.cart,
html body table.shop_attributes {
    background: transparent !important;
    border: 2px solid #C9A961 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    margin: 24px 0 !important;
    width: 100% !important;
    box-shadow: 0 4px 16px rgba(74, 14, 14, 0.10) !important;
}

html body .woocommerce table.shop_table thead,
html body .woocommerce-page table.shop_table thead {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
}

html body .woocommerce table.shop_table thead th,
html body .woocommerce-page table.shop_table thead th {
    background: transparent !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: none !important;
    border-bottom: 2px solid #C9A961 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 14px 18px !important;
    text-align: left !important;
}

/* ALL td cells: parchment background, dark ink text, NEVER dark */
html body .woocommerce table.shop_table td,
html body .woocommerce-page table.shop_table td,
html body table.woocommerce-grouped-product-list td,
html body table.group_table td,
html body .woocommerce table.cart td,
html body table.shop_attributes td,
html body table.shop_attributes th {
    background: #FAF4E4 !important;
    background-color: #FAF4E4 !important;
    color: #2A1810 !important;
    -webkit-text-fill-color: #2A1810 !important;
    border: none !important;
    border-bottom: 1px solid rgba(201, 169, 97, 0.4) !important;
    border-right: 1px solid rgba(201, 169, 97, 0.25) !important;
    padding: 16px 18px !important;
    vertical-align: middle !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.05rem !important;
}

html body .woocommerce table.shop_table td:last-child,
html body table.woocommerce-grouped-product-list td:last-child,
html body table.group_table td:last-child,
html body .woocommerce table.cart td:last-child {
    border-right: none !important;
}

html body .woocommerce table.shop_table tr:last-child td,
html body table.woocommerce-grouped-product-list tr:last-child td,
html body table.group_table tr:last-child td,
html body .woocommerce table.cart tr:last-child td {
    border-bottom: none !important;
}

/* Striped alternating rows — subtle parchment-warm on even rows */
html body .woocommerce table.shop_table tbody tr:nth-child(even) td,
html body table.woocommerce-grouped-product-list tbody tr:nth-child(even) td,
html body table.group_table tbody tr:nth-child(even) td {
    background: #EFE2C4 !important;
    background-color: #EFE2C4 !important;
}

/* Hover row highlight */
html body .woocommerce table.shop_table tbody tr:hover td,
html body table.woocommerce-grouped-product-list tbody tr:hover td,
html body table.group_table tbody tr:hover td {
    background: #F5E8C8 !important;
    background-color: #F5E8C8 !important;
}

/* ---------- Product name / labels in table ---------- */
html body .woocommerce table.shop_table td.product-name,
html body .woocommerce-grouped-product-list-item__label,
html body table.group_table td.label,
html body table.group_table td:first-child {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 600 !important;
    font-size: 1rem !important;
    letter-spacing: 0.04em !important;
}

html body .woocommerce table.shop_table td.product-name a,
html body .woocommerce-grouped-product-list-item__label a,
html body .woocommerce-grouped-product-list-item__label label,
html body table.group_table td.label a,
html body table.group_table td:first-child a {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    background: none !important;
    background-image: none !important;
    text-decoration: none !important;
    border-bottom: none !important;
    padding: 0 !important;
    font-weight: 700 !important;
}

html body .woocommerce table.shop_table td.product-name a:hover,
html body .woocommerce-grouped-product-list-item__label a:hover {
    color: #8C2828 !important;
    -webkit-text-fill-color: #8C2828 !important;
    background: none !important;
    text-decoration: underline !important;
    text-decoration-color: #C9A961 !important;
    text-underline-offset: 4px !important;
}

/* ---------- Price column ---------- */
html body .woocommerce table.shop_table td.product-price,
html body .woocommerce-grouped-product-list-item__price,
html body table.group_table td.price,
html body .woocommerce table.shop_table span.amount,
html body table.shop_table .amount,
html body td .amount {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 1.1rem !important;
    background: transparent !important;
    background-image: none !important;
    clip-path: none !important;
    padding: 0 !important;
    border: none !important;
    text-shadow: none !important;
    box-shadow: none !important;
    display: inline !important;
}

/* Remove the ribbon clip-path from prices when they're inside a table cell */
html body .woocommerce table.shop_table .price,
html body table.group_table .price {
    background: transparent !important;
    clip-path: none !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    color: #6B1414 !important;
}

/* ---------- Quantity input + plus/minus buttons ----------
   The previous styling had tiny pill that displayed "I" instead of
   a proper quantity number. Rebuild as a clean three-piece control. */
html body .woocommerce .quantity,
html body .quantity {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    margin-right: 12px !important;
}

html body .woocommerce .quantity input.qty,
html body .quantity input.qty,
html body input.qty,
html body input[type="number"].qty {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    height: 46px !important;
    text-align: center !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    background: #FAF4E4 !important;
    border: 2px solid #C9A961 !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    padding: 0 8px !important;
    box-shadow: none !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
}

/* Hide native number input spinners */
html body input.qty::-webkit-outer-spin-button,
html body input.qty::-webkit-inner-spin-button,
html body input[type="number"].qty::-webkit-outer-spin-button,
html body input[type="number"].qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

/* Plus / minus buttons — these come from a plugin like
   WooCommerce Plus Minus Quantity Buttons OR theme integration.
   Style every common variant: .plus, .minus, .qty-plus, .qty-minus,
   button.plus, button.minus, .quantity-button. */
html body .quantity .plus,
html body .quantity .minus,
html body .quantity button.plus,
html body .quantity button.minus,
html body .quantity .qty-plus,
html body .quantity .qty-minus,
html body .quantity-button,
html body .qib-button,
html body .wapf-plus,
html body .wapf-minus,
html body .quantity .button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 46px !important;
    min-width: 44px !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 0 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.4rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    transition: background 0.2s ease, color 0.2s ease !important;
    text-indent: 0 !important;
}

html body .quantity .minus,
html body .quantity .qty-minus {
    border-right: none !important;
    border-radius: 4px 0 0 4px !important;
}

html body .quantity .plus,
html body .quantity .qty-plus {
    border-left: none !important;
    border-radius: 0 4px 4px 0 !important;
}

html body .quantity .plus:hover,
html body .quantity .minus:hover,
html body .quantity .qty-plus:hover,
html body .quantity .qty-minus:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
}

/* ---------- Add to Cart button (full styling) ----------
   The earlier button rules weren't winning against WC's own CSS.
   Force the wax-seal button look on every WC button variant. */
html body .woocommerce a.button,
html body .woocommerce button.button,
html body .woocommerce input.button,
html body .woocommerce-page a.button,
html body .woocommerce-page button.button,
html body .woocommerce-page input.button,
html body .woocommerce button.button.alt,
html body .woocommerce a.button.alt,
html body .woocommerce-page button.button.alt,
html body .woocommerce input.button.alt,
html body .woocommerce button.single_add_to_cart_button,
html body button.single_add_to_cart_button,
html body .single_add_to_cart_button,
html body .add_to_cart_button,
html body .ajax_add_to_cart,
html body .product .cart button[type="submit"] {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    background-color: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 12px 28px !important;
    border-radius: 4px !important;
    min-height: 46px !important;
    height: auto !important;
    line-height: 1.2 !important;
    box-shadow:
        0 2px 0 #4A0E0E,
        inset 0 0 0 1px rgba(229, 196, 106, 0.3),
        0 4px 12px rgba(74, 14, 14, 0.2) !important;
    cursor: pointer !important;
    text-shadow: 0 1px 0 rgba(0,0,0,0.25) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    transition: all 0.2s ease !important;
}

html body .woocommerce a.button:hover,
html body .woocommerce button.button:hover,
html body .woocommerce input.button:hover,
html body .woocommerce button.single_add_to_cart_button:hover,
html body .single_add_to_cart_button:hover,
html body .add_to_cart_button:hover,
html body .ajax_add_to_cart:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    background-color: #C9A961 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
    transform: translateY(-1px) !important;
    box-shadow:
        0 4px 0 #4A0E0E,
        inset 0 0 0 1px rgba(107, 20, 20, 0.3),
        0 6px 16px rgba(74, 14, 14, 0.3) !important;
}

html body .woocommerce a.button:active,
html body .woocommerce button.button:active {
    transform: translateY(1px) !important;
    box-shadow:
        0 0 0 #4A0E0E,
        inset 0 2px 4px rgba(0,0,0,0.3) !important;
}

/* "Added" / "View cart" success state */
html body .woocommerce a.added_to_cart {
    color: #6B1414 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
    font-size: 0.85rem !important;
    margin-left: 12px !important;
    text-decoration: underline !important;
    text-decoration-color: #C9A961 !important;
}

/* ---------- Cart subtotal / totals ---------- */
html body .cart_totals h2,
html body .cart_totals table.shop_table th,
html body .woocommerce-shipping-totals th,
html body .order-total th {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
}

/* ---------- Shop attributes table (single product details) ---------- */
html body table.shop_attributes th {
    width: 30% !important;
    font-weight: 700 !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    background: #F5E8C8 !important;
    text-align: left !important;
}

/* ---------- Disable any inherited color overrides on td contents ---------- */
html body .woocommerce table.shop_table td *,
html body table.woocommerce-grouped-product-list td *,
html body table.group_table td *,
html body .woocommerce table.cart td * {
    background-image: none !important;
}

/* Re-allow gradient backgrounds we WANT on td descendants:
   buttons, .price, .quantity buttons */
html body .woocommerce table.shop_table td .button,
html body .woocommerce table.shop_table td button,
html body .woocommerce table.shop_table td .quantity .plus,
html body .woocommerce table.shop_table td .quantity .minus,
html body table.group_table td .button,
html body table.group_table td button,
html body table.group_table td .quantity .plus,
html body table.group_table td .quantity .minus {
    background-image: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
}

/* ---------- Empty cells: prevent collapse ---------- */
html body .woocommerce table.shop_table td:empty,
html body table.group_table td:empty {
    min-width: 20px;
    background: transparent !important;
}

/* ---------- Mobile responsive: stack table cells ---------- */
@media (max-width: 640px) {
    html body .woocommerce table.shop_table,
    html body table.group_table,
    html body table.woocommerce-grouped-product-list {
        display: block !important;
    }
    html body .woocommerce table.shop_table thead,
    html body table.group_table thead {
        display: none !important;
    }
    html body .woocommerce table.shop_table tbody,
    html body table.group_table tbody {
        display: block !important;
    }
    html body .woocommerce table.shop_table tr,
    html body table.group_table tr {
        display: block !important;
        margin-bottom: 16px !important;
        border: 2px solid #C9A961 !important;
        border-radius: 4px !important;
        overflow: hidden !important;
    }
    html body .woocommerce table.shop_table td,
    html body table.group_table td {
        display: block !important;
        border-right: none !important;
        text-align: left !important;
    }
}

/* =============================================================
   DragonBridge — WooCommerce Product Table plugin (v1.4.2)
   Targets the Barn2 "WooCommerce Product Table" plugin which uses
   .wc-product-table (DataTables-based), distinct from the core WC
   shop_table. The plugin's own CSS sets bg/color via classes my
   earlier overrides missed.
   ============================================================= */

/* ---------- Wrapper & table base ---------- */
html body .wc-product-table-wrapper,
html body .wc-product-table-wrapper.dragonbridge,
html body .wc-product-table-wrapper.wpt-styling-neutral,
html body .wc-product-table-wrapper.wpt-styling-default,
html body .wc-product-table-wrapper.wpt-styling-rounded,
html body .wc-product-table-wrapper.wpt-styling-minimal,
html body .wc-product-table-wrapper.wpt-styling-bordered,
html body .wc-product-table-wrapper.wpt-styling-clean,
html body .wc-product-table-wrapper.wpt-styling-horizontal {
    background: transparent !important;
    color: #2A1810 !important;
    border: 2px solid #C9A961 !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    box-shadow: 0 4px 16px rgba(74, 14, 14, 0.12) !important;
    margin: 24px 0 !important;
    padding: 0 !important;
}

html body table.wc-product-table,
html body table.wc-product-table.dataTable,
html body .wc-product-table-wrapper table.wc-product-table,
html body .wc-product-table-wrapper table {
    background: #FAF4E4 !important;
    background-color: #FAF4E4 !important;
    background-image: none !important;
    color: #2A1810 !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    border: none !important;
    width: 100% !important;
    margin: 0 !important;
}

/* ---------- THEAD (header row) ---------- */
html body table.wc-product-table thead,
html body table.wc-product-table thead tr,
html body table.wc-product-table thead th {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    background-color: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: none !important;
    border-bottom: 2px solid #C9A961 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 14px 16px !important;
    text-align: left !important;
}

/* If the plugin's "hide-header" class is on the table, keep header hidden */
html body table.wc-product-table.hide-header thead {
    display: none !important;
}

/* ---------- TBODY rows ---------- */
html body table.wc-product-table tbody tr,
html body table.wc-product-table tbody tr.product,
html body table.wc-product-table tbody tr.product-row,
html body table.wc-product-table tbody tr.odd,
html body table.wc-product-table tbody tr.even {
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
}

/* Striped alternating rows — clean parchment / parchment-warm */
html body table.wc-product-table tbody tr.odd > td,
html body table.wc-product-table tbody tr:nth-child(odd) > td {
    background: #FAF4E4 !important;
    background-color: #FAF4E4 !important;
}

html body table.wc-product-table tbody tr.even > td,
html body table.wc-product-table tbody tr:nth-child(even) > td {
    background: #EFE2C4 !important;
    background-color: #EFE2C4 !important;
}

/* Hover row */
html body table.wc-product-table tbody tr:hover > td {
    background: #F5E8C8 !important;
    background-color: #F5E8C8 !important;
}

/* ---------- All cells in the product table ---------- */
html body table.wc-product-table tbody td,
html body table.wc-product-table tbody td.col-name,
html body table.wc-product-table tbody td.col-price,
html body table.wc-product-table tbody td.col-buy,
html body table.wc-product-table tbody td.col-add-to-cart,
html body table.wc-product-table tbody td.sorting,
html body table.wc-product-table tbody td.sorting_disabled,
html body table.wc-product-table tbody td.dtr-control {
    color: #2A1810 !important;
    -webkit-text-fill-color: #2A1810 !important;
    border: none !important;
    border-bottom: 1px solid rgba(201, 169, 97, 0.45) !important;
    border-right: 1px solid rgba(201, 169, 97, 0.30) !important;
    padding: 18px 20px !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.08rem !important;
    vertical-align: middle !important;
    background-image: none !important;
}

html body table.wc-product-table tbody td:last-child {
    border-right: none !important;
}

html body table.wc-product-table tbody tr:last-child td {
    border-bottom: none !important;
}

/* ---------- Product name (Adult / Child / Senior etc.) ---------- */
html body table.wc-product-table tbody td.col-name {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 1.05rem !important;
    letter-spacing: 0.04em !important;
}

html body table.wc-product-table tbody td.col-name,
html body table.wc-product-table tbody td.col-name a,
html body table.wc-product-table tbody td.col-name span,
html body table.wc-product-table tbody td.col-name .product-name,
html body table.wc-product-table tbody td.col-name .wc-product-table-item__name {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    text-decoration: none !important;
    border-bottom: none !important;
    background: none !important;
    background-image: none !important;
    padding: 0 !important;
    font-weight: 700 !important;
}

html body table.wc-product-table tbody td.col-name a:hover {
    color: #8C2828 !important;
    -webkit-text-fill-color: #8C2828 !important;
    text-decoration: underline !important;
    text-decoration-color: #C9A961 !important;
    text-underline-offset: 4px !important;
    background: none !important;
}

/* ---------- Price column ---------- */
html body table.wc-product-table tbody td.col-price,
html body table.wc-product-table tbody td.col-price *,
html body table.wc-product-table tbody td.col-price .amount,
html body table.wc-product-table tbody td.col-price .woocommerce-Price-amount,
html body table.wc-product-table tbody td.col-price .price {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    background: transparent !important;
    background-image: none !important;
    clip-path: none !important;
    padding: 0 !important;
    border: none !important;
    box-shadow: none !important;
    text-shadow: none !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 1.15rem !important;
  
}

/* ---------- Buy column (qty + add to cart) ---------- */
html body table.wc-product-table tbody td.col-buy,
html body table.wc-product-table tbody td.col-add-to-cart {
    white-space: nowrap !important;
}

html body table.wc-product-table .quantity,
html body table.wc-product-table td .quantity {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    margin-right: 12px !important;
    vertical-align: middle !important;
}

html body table.wc-product-table input.qty,
html body table.wc-product-table input[type="number"].qty,
html body table.wc-product-table td input.qty {
    width: 60px !important;
    min-width: 60px !important;
    max-width: 60px !important;
    height: 46px !important;
    text-align: center !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    background: #FAF4E4 !important;
    border: 2px solid #C9A961 !important;
    border-left: none !important;
    border-right: none !important;
    border-radius: 0 !important;
    padding: 0 8px !important;
    box-shadow: none !important;
    line-height: normal !important;
    -moz-appearance: textfield !important;
    appearance: textfield !important;
}

html body table.wc-product-table input.qty::-webkit-outer-spin-button,
html body table.wc-product-table input.qty::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

html body table.wc-product-table .quantity .plus,
html body table.wc-product-table .quantity .minus,
html body table.wc-product-table .quantity button.plus,
html body table.wc-product-table .quantity button.minus,
html body table.wc-product-table .quantity .qty-plus,
html body table.wc-product-table .quantity .qty-minus,
html body table.wc-product-table .qib-button,
html body table.wc-product-table .quantity-button {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 44px !important;
    height: 46px !important;
    min-width: 44px !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 0 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    text-indent: 0 !important;
    text-shadow: none !important;
}

html body table.wc-product-table .quantity .minus,
html body table.wc-product-table .quantity .qty-minus {
    border-right: none !important;
    border-radius: 4px 0 0 4px !important;
}

html body table.wc-product-table .quantity .plus,
html body table.wc-product-table .quantity .qty-plus {
    border-left: none !important;
    border-radius: 0 4px 4px 0 !important;
}

html body table.wc-product-table .quantity .plus:hover,
html body table.wc-product-table .quantity .minus:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
}

/* ---------- Add to Cart button inside product table ---------- */
html body table.wc-product-table .button,
html body table.wc-product-table a.button,
html body table.wc-product-table button.button,
html body table.wc-product-table input.button,
html body table.wc-product-table .add_to_cart_button,
html body table.wc-product-table .ajax_add_to_cart,
html body table.wc-product-table .single_add_to_cart_button,
html body .wc-product-table-wrapper .button,
html body .wc-product-table-wrapper a.button,
html body .wc-product-table-wrapper button.button {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    background-color: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 12px 26px !important;
    min-height: 46px !important;
    line-height: 1.2 !important;
    box-shadow:
        0 2px 0 #4A0E0E,
        inset 0 0 0 1px rgba(229, 196, 106, 0.3),
        0 4px 10px rgba(74, 14, 14, 0.18) !important;
    text-shadow: 0 1px 0 rgba(0,0,0,0.25) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    cursor: pointer !important;
    vertical-align: middle !important;
    transition: all 0.2s ease !important;
    clip-path: none !important;
}

html body table.wc-product-table .button:hover,
html body table.wc-product-table a.button:hover,
html body table.wc-product-table .add_to_cart_button:hover,
html body .wc-product-table-wrapper .button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    background-color: #C9A961 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
    transform: translateY(-1px) !important;
    box-shadow:
        0 4px 0 #4A0E0E,
        inset 0 0 0 1px rgba(107, 20, 20, 0.3),
        0 6px 14px rgba(74, 14, 14, 0.28) !important;
}

html body table.wc-product-table .button:active {
    transform: translateY(1px) !important;
    box-shadow:
        0 0 0 #4A0E0E,
        inset 0 2px 4px rgba(0,0,0,0.3) !important;
}

/* "Added to cart" text after click */
html body .wc-product-table-wrapper a.added_to_cart,
html body table.wc-product-table a.added_to_cart {
    color: #6B1414 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    text-transform: uppercase !important;
    letter-spacing: 0.06em !important;
    font-size: 0.8rem !important;
    margin-left: 10px !important;
    text-decoration: underline !important;
    text-decoration-color: #C9A961 !important;
    display: inline-block !important;
    vertical-align: middle !important;
}

/* ---------- DataTables controls (search, length, pagination) ---------- */
html body .wc-product-table-controls,
html body .wc-product-table-wrapper .wc-product-table-controls {
    background: #FAF4E4 !important;
    color: #2A1810 !important;
    padding: 14px 18px !important;
    border-bottom: 1px solid rgba(201, 169, 97, 0.4) !important;
}

html body .wc-product-table-controls label,
html body .wc-product-table-controls .dataTables_length label {
    color: #6B1414 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.05em !important;
}

html body .wc-product-table-controls input[type="search"],
html body .wc-product-table-controls select {
    background: #FAF4E4 !important;
    color: #2A1810 !important;
    border: 1px solid #C9A961 !important;
    padding: 8px 12px !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1rem !important;
}

html body .wc-product-table-controls .dataTables_paginate .paginate_button {
    background: #FAF4E4 !important;
    color: #6B1414 !important;
    border: 1px solid #C9A961 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    padding: 6px 12px !important;
    margin: 0 2px !important;
}

html body .wc-product-table-controls .dataTables_paginate .paginate_button.current,
html body .wc-product-table-controls .dataTables_paginate .paginate_button:hover {
    background: #6B1414 !important;
    color: #E5C46A !important;
    border-color: #6B1414 !important;
}

/* ---------- Responsive: stack on mobile ---------- */
@media (max-width: 640px) {
    html body table.wc-product-table {
        display: block !important;
    }
    html body table.wc-product-table tbody {
        display: block !important;
    }
    html body table.wc-product-table tbody tr {
        display: block !important;
        margin-bottom: 14px !important;
        border: 2px solid #C9A961 !important;
        border-radius: 6px !important;
        overflow: hidden !important;
    }
    html body table.wc-product-table tbody td {
        display: block !important;
        border-right: none !important;
        text-align: left !important;
        padding: 14px 18px !important;
    }
    html body table.wc-product-table tbody td.col-buy,
    html body table.wc-product-table tbody td.col-add-to-cart {
        white-space: normal !important;
    }
}

/* =============================================================
   DragonBridge — Page Title + Dropdown Fix (v1.4.3)
   ============================================================= */

/* ---------- PAGE TITLE: kill the gold shimmer on sub-pages ----------
   The shimmer-gold gradient + background-clip: text was designed for
   titles painted on TOP of a darkened hero image. On sub-pages the
   title falls through to the parchment band BELOW the torn-paper hero,
   where gold-on-parchment renders invisible. Force a solid burgundy
   color for sub-page titles. */
html body .top-header.singular-heading .single-title,
html body .top-header.singular-heading .header-title .single-title,
html body .top-header.singular-heading h1.single-title {
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    text-fill-color: #6B1414 !important;
    animation: none !important;
    font-family: 'Cinzel', 'Trajan Pro', Georgia, serif !important;
    font-weight: 700 !important;
    text-shadow: none !important;
    filter: none !important;
}

/* Make the title clearly visible: center it in the parchment band
   that sits between the torn-paper hero edge and the content card. */
html body .top-header.singular-heading .header-title {
    position: relative !important;
    top: auto !important;
    transform: none !important;
    -webkit-transform: none !important;
    padding: 28px 24px 20px !important;
    margin: 0 auto !important;
    max-width: 1100px !important;
    text-align: center !important;
}

html body .top-header.singular-heading .single-head {
    text-align: center !important;
}

html body .top-header.singular-heading .single-title {
    display: inline-block !important;
    font-size: clamp(1.9rem, 3.4vw, 2.8rem) !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    padding: 0 48px !important;
    position: relative;
}

/* Small fleur ornaments on either side of the page title */
html body .top-header.singular-heading .single-title::before {
    content: "⚜";
    position: absolute;
    left: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #C9A961;
    -webkit-text-fill-color: #C9A961;
    font-size: 0.7em;
    opacity: 0.85;
}

html body .top-header.singular-heading .single-title::after {
    content: "⚜";
    position: absolute;
    right: 0;
    top: 50%;
    transform: translateY(-50%);
    color: #C9A961;
    -webkit-text-fill-color: #C9A961;
    font-size: 0.7em;
    opacity: 0.85;
    display: inline-block;
    background: none;
    width: auto;
    height: auto;
    border: none;
}

/* Gold underline rule under the page title */
html body .top-header.singular-heading .header-title .single-head::after {
    content: "";
    display: block;
    width: 140px;
    height: 2px;
    background: #C9A961;
    box-shadow: 0 4px 0 #C9A961;
    margin: 14px auto 0;
}

/* Re-allow shimmer ONLY on the home large-hero template title
   (which IS positioned over a dark image overlay) */
html body.dragonbridge-large-hero .top-header.home-large-hero .single-title,
html body.dragonbridge-large-hero .top-header.home-large-hero .header-site-title {
    background-image: linear-gradient(100deg, #E5C46A 0%, #FFF3D2 35%, #FFFFFF 50%, #FFF3D2 65%, #E5C46A 100%) !important;
    -webkit-background-clip: text !important;
    background-clip: text !important;
    color: transparent !important;
    -webkit-text-fill-color: transparent !important;
    background-size: 200% auto !important;
    animation: db-shimmer 6s linear infinite !important;
}

/* ---------- DROPDOWN MENU: target the actual markup ----------
   This WordPress menu uses .dropdown-menu > a.dropdown-item (Bootstrap
   4+ style), not .dropdown-menu > li > a. The earlier dropdown CSS
   targeted the <li> wrapper, missing these flat-anchor items entirely.
   Result: links inherited a faded gold-tan color from somewhere with
   no override. Forced ink-on-parchment contrast here. */
html body .dropdown-menu,
html body ul.dropdown-menu,
html body div.dropdown-menu,
html body .sub-menu,
html body .menu-container ul ul {
    background: #FAF4E4 !important;
    background-color: #FAF4E4 !important;
    background-image: none !important;
    border: 2px solid #C9A961 !important;
    border-top: 4px solid #6B1414 !important;
    border-radius: 0 0 4px 4px !important;
    box-shadow: 0 8px 24px rgba(74, 14, 14, 0.28) !important;
    padding: 6px 0 !important;
    min-width: 220px !important;
    margin-top: 0 !important;
}

html body .dropdown-menu a,
html body .dropdown-menu .dropdown-item,
html body a.dropdown-item,
html body .dropdown-menu > a,
html body .dropdown-menu > li > a,
html body .sub-menu a,
html body .sub-menu > li > a,
html body .menu-container ul ul > li > a,
html body .menu-container ul ul a {
    color: #2A1810 !important;
    -webkit-text-fill-color: #2A1810 !important;
    background: transparent !important;
    background-color: transparent !important;
    background-image: none !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 600 !important;
    font-size: 0.92rem !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 12px 22px !important;
    display: block !important;
    text-decoration: none !important;
    border: none !important;
    border-bottom: 1px solid rgba(201, 169, 97, 0.3) !important;
    text-align: left !important;
    line-height: 1.3 !important;
    min-height: 44px !important;
    white-space: nowrap !important;
    text-shadow: none !important;
}

html body .dropdown-menu a:last-child,
html body .dropdown-menu .dropdown-item:last-child,
html body .sub-menu > li:last-child > a {
    border-bottom: none !important;
}

html body .dropdown-menu a:hover,
html body .dropdown-menu a:focus,
html body .dropdown-menu .dropdown-item:hover,
html body .dropdown-menu .dropdown-item:focus,
html body a.dropdown-item:hover,
html body .sub-menu a:hover,
html body .sub-menu a:focus,
html body .menu-container ul ul > li > a:hover {
    background: #6B1414 !important;
    background-color: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    padding-left: 28px !important;
    transition: background-color 0.2s ease, padding-left 0.2s ease !important;
}

/* Current/active dropdown item */
html body .dropdown-menu .current-menu-item > a,
html body .dropdown-menu .current_page_item > a,
html body .sub-menu .current-menu-item > a,
html body .sub-menu .current_page_item > a {
    background: rgba(107, 20, 20, 0.10) !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
}

/* Caret triangle indicator on parent items (Vendors ▾) */
html body .nav .menu-item-has-children > a::after,
html body .menu-container .menu-item-has-children > a::after {
    content: " \25BE" !important;
    margin-left: 6px !important;
    font-size: 0.7em !important;
    opacity: 0.85 !important;
    vertical-align: middle !important;
}

/* =============================================================
   DragonBridge — Hero Border Simplification (v1.4.4)
   Replaces the torn-paper mask with a clean rectangular hero
   ending in a decorative gold double-rule + centered fleur-de-lis
   ornament. Reads as an illuminated-manuscript page divider.
   ============================================================= */

/* ---------- Kill every prior hero mask ---------- */
html body .top-header,
html body .top-header.home-heading,
html body .top-header.singular-heading,
html body.dragonbridge-large-hero .top-header.home-large-hero {
    -webkit-mask-image: none !important;
    mask-image: none !important;
    -webkit-mask: none !important;
    mask: none !important;
    filter: none !important;
    overflow: visible !important;
}

/* Kill the drop-shadow used for the torn-paper hero */
html body .top-header.home-heading,
html body .top-header.singular-heading,
html body.dragonbridge-large-hero .top-header.home-large-hero {
    filter: none !important;
}

/* Kill the gold banner-outline tracing pseudo */
html body.dragonbridge-large-hero .top-header.home-large-hero::after {
    content: none !important;
    display: none !important;
    background-image: none !important;
}

/* ---------- Decorative bottom border ----------
   A 14px-tall gold double-rule with a centered fleur-de-lis medallion.
   Sits just below the hero image. */
html body .top-header,
html body .top-header.home-heading,
html body .top-header.singular-heading,
html body.dragonbridge-large-hero .top-header.home-large-hero {
    position: relative;
    border-bottom: none !important;
    box-shadow: none !important;
}

/* Gold trim strip with double rule */
html body .top-header::before {
    content: "" !important;
    position: absolute !important;
    left: 0 !important;
    right: 0 !important;
    bottom: -1px !important;
    top: auto !important;
    height: 14px !important;
    pointer-events: none !important;
    z-index: 5 !important;
    background:
        linear-gradient(180deg,
            #4A0E0E 0%, #4A0E0E 3px,
            #C9A961 3px, #C9A961 5px,
            #FAF4E4 5px, #FAF4E4 9px,
            #C9A961 9px, #C9A961 11px,
            #4A0E0E 11px, #4A0E0E 14px) !important;
    background-image:
        linear-gradient(180deg,
            #4A0E0E 0%, #4A0E0E 3px,
            #C9A961 3px, #C9A961 5px,
            #FAF4E4 5px, #FAF4E4 9px,
            #C9A961 9px, #C9A961 11px,
            #4A0E0E 11px, #4A0E0E 14px) !important;
    background-color: transparent !important;
    background-repeat: no-repeat !important;
    background-size: 100% 100% !important;
    background-position: 0 0 !important;
    display: block !important;
    width: auto !important;
    margin: 0 !important;
    padding: 0 !important;
    border: none !important;
    border-radius: 0 !important;
    transform: none !important;
    animation: none !important;
    box-shadow: 0 2px 6px rgba(74, 14, 14, 0.20) !important;
}

/* Centered fleur-de-lis medallion sitting on the gold trim */
html body .top-header > .db-hero-ornament,
html body .top-header::after {
    content: "⚜" !important;
    position: absolute !important;
    left: 50% !important;
    bottom: -16px !important;
    top: auto !important;
    transform: translateX(-50%) !important;
    width: 38px !important;
    height: 38px !important;
    line-height: 34px !important;
    text-align: center !important;
    background: #FAF4E4 !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    border: 2px solid #C9A961 !important;
    border-radius: 50% !important;
    font-size: 20px !important;
    z-index: 6 !important;
    box-shadow:
        0 2px 6px rgba(74, 14, 14, 0.30),
        inset 0 0 0 1px rgba(74, 14, 14, 0.20) !important;
    pointer-events: none !important;
    display: block !important;
    background-image: none !important;
    filter: none !important;
    animation: none !important;
    font-family: 'Cinzel', 'IM Fell English SC', Georgia, serif !important;
}

/* Small breathing room below the medallion so the title underline
   on sub-pages doesn't collide with it */
html body .top-header.singular-heading {
    margin-bottom: 24px !important;
}

/* On the home large-hero (no title overlay) the medallion still
   reads cleanly because the trim sits at the bottom of the image */
html body.dragonbridge-large-hero .top-header.home-large-hero {
    margin-bottom: 28px !important;
}

/* On mobile, slim the trim and shrink the medallion */
@media (max-width: 768px) {
    html body .top-header::before {
        height: 10px !important;
        background:
            linear-gradient(180deg,
                #4A0E0E 0%, #4A0E0E 2px,
                #C9A961 2px, #C9A961 4px,
                #FAF4E4 4px, #FAF4E4 6px,
                #C9A961 6px, #C9A961 8px,
                #4A0E0E 8px, #4A0E0E 10px) !important;
        background-image:
            linear-gradient(180deg,
                #4A0E0E 0%, #4A0E0E 2px,
                #C9A961 2px, #C9A961 4px,
                #FAF4E4 4px, #FAF4E4 6px,
                #C9A961 6px, #C9A961 8px,
                #4A0E0E 8px, #4A0E0E 10px) !important;
    }
    html body .top-header::after {
        width: 30px !important;
        height: 30px !important;
        line-height: 26px !important;
        font-size: 16px !important;
        bottom: -12px !important;
    }
}

/* Print: hide the decorative trim */
@media print {
    html body .top-header::before,
    html body .top-header::after {
        display: none !important;
    }
}

/* =============================================================
   DragonBridge — Layout Fixes (v1.4.5)
   Fixes:
     1. Remove gap between sticky nav and hero image
     2. Kill all pennant flag pseudo-elements
     3. Fix .header-title left-offset bug (was left:928px due to
        inherited left:50% on position:relative)
     4. Stronger hero overlay on sub-pages so title reads on image
     5. Title style updated for dark overlay readability
   ============================================================= */

/* ── 1. Kill the margin-top that created a gap under the nav ── */
html body .top-header,
html body .top-header.home-heading,
html body .top-header.singular-heading {
    margin-top: 0 !important;
}

html body.dragonbridge-large-hero .top-header.home-large-hero {
    margin-top: 0 !important;
}

@media (max-width: 768px) {
    html body .top-header {
        margin-top: 0 !important;
    }
}

/* ── 2. Kill every pennant pseudo-element everywhere ── */
html body .main-container:before,
html body #site-content.main-container:before,
html body .page-area:before,
html body .site-header:before,
html body .main-menu:before,
html body .page-wrap > *:before {
    display: none !important;
    content: none !important;
    height: 0 !important;
    background: none !important;
    background-image: none !important;
    animation: none !important;
}

/* ── 3. Fix header-title left-offset (left:50% + position:relative = 928px off screen) ──
   Root cause: the original theme set .header-title { position:absolute; left:50% }
   v1.4.3 changed to position:relative but never reset left.
   Correct fix: restore absolute centering with proper left+transform.
   NOTE: .top-header keeps overflow:visible (from v1.4.4) so the ::after
   medallion can poke below the hero. The single-image clips itself. */
html body .top-header.singular-heading {
    position: relative !important;
}

html body .top-header.singular-heading .header-title {
    position: absolute !important;
    left: 50% !important;
    top: auto !important;
    bottom: 28px !important;
    transform: translateX(-50%) !important;
    -webkit-transform: translateX(-50%) !important;
    width: 90% !important;
    max-width: 1100px !important;
    text-align: center !important;
    padding: 0 24px !important;
    margin: 0 !important;
    z-index: 4 !important;
}

/* ── 4. Stronger overlay on sub-page heroes ──
   The previous overlay (20–40% opacity) made the image too bright for
   title legibility. Increase to 50–80% at the bottom where the title sits. */
html body .top-header.singular-heading .single-image:after {
    content: "" !important;
    position: absolute !important;
    inset: 0 !important;
    background: linear-gradient(
        180deg,
        rgba(20, 10, 10, 0.25) 0%,
        rgba(20, 10, 10, 0.35) 35%,
        rgba(74, 14, 14, 0.62) 65%,
        rgba(74, 14, 14, 0.82) 100%
    ) !important;
    z-index: 2 !important;
    pointer-events: none !important;
}

/* ── 5. Title text: cream-white with depth shadow for dark overlay ── */
html body .top-header.singular-heading .single-title,
html body .top-header.singular-heading .header-title .single-title,
html body .top-header.singular-heading h1.single-title {
    color: #FAF4E4 !important;
    -webkit-text-fill-color: #FAF4E4 !important;
    text-fill-color: #FAF4E4 !important;
    background: none !important;
    background-image: none !important;
    -webkit-background-clip: border-box !important;
    background-clip: border-box !important;
    animation: none !important;
    text-shadow:
        0 2px 12px rgba(0, 0, 0, 0.85),
        0 1px 3px rgba(0, 0, 0, 0.65) !important;
    filter: none !important;
    font-family: 'Cinzel', 'Trajan Pro', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: clamp(1.9rem, 3.4vw, 2.8rem) !important;
    line-height: 1.15 !important;
    margin: 0 !important;
    padding: 0 48px !important;
    display: inline-block !important;
    position: relative !important;
    left: auto !important;
}

/* Fleur ornaments flanking the title */
html body .top-header.singular-heading .single-title::before {
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6) !important;
}

html body .top-header.singular-heading .single-title::after {
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    text-shadow: 0 1px 4px rgba(0, 0, 0, 0.6) !important;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    line-height: inherit !important;
    font-size: 0.7em !important;
    display: inline-block !important;
}

/* Gold underline below the title — keep it tight on the hero */
html body .top-header.singular-heading .header-title .single-head::after {
    background: #C9A961 !important;
    box-shadow: 0 4px 0 #C9A961 !important;
    opacity: 0.9 !important;
}

/* ── Mobile: adjust title font and hero height ── */
@media (max-width: 768px) {
    html body .top-header.singular-heading .header-title {
        bottom: 18px !important;
        width: 94% !important;
    }

    html body .top-header.singular-heading .single-title {
        font-size: clamp(1.4rem, 5vw, 2rem) !important;
        padding: 0 32px !important;
    }
}

/* =============================================================
   DragonBridge — Hero & Table Polish (v1.4.6)
   Fixes:
     1. Kill the green wax-seal circle (.header-title::after)
     2. Fix right ornament: was ❦ (Envo Royal default) → ⚜, inline
     3. Fix quantity +/- button selectors — buttons are siblings of
        .quantity inside .add-to-cart-button, NOT inside .quantity
     4. Tighten button sizing to match qty input height
   ============================================================= */

/* ── 1. Kill the green wax-seal that floats in the hero top-right ── */
html body .top-header .header-title::after,
html body .top-header.singular-heading .header-title::after,
html body .top-header.home-heading .header-title::after {
    display: none !important;
    content: none !important;
    background: none !important;
    width: 0 !important;
    height: 0 !important;
    border: none !important;
    box-shadow: none !important;
}

/* ── 2. Fix the right ornament on the page title ──
   Envo Royal sets content:"❦" on .single-title::after via an early rule
   that was never overridden with !important on content.
   Change it to ⚜ and make it flow inline (not position:absolute) so
   it sits neatly after the title text without needing right:0 math. */
html body .top-header.singular-heading .single-title::before,
html body .top-header.singular-heading h1.single-title::before {
    content: "⚜" !important;
    position: static !important;
    display: inline !important;
    margin-right: 0.45em !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    font-size: 0.65em !important;
    vertical-align: middle !important;
    top: auto !important;
    left: auto !important;
    transform: none !important;
    -webkit-transform: none !important;
    opacity: 0.9 !important;
    text-shadow: 0 1px 5px rgba(0,0,0,0.7) !important;
}

html body .top-header.singular-heading .single-title::after,
html body .top-header.singular-heading h1.single-title::after {
    content: "⚜" !important;
    position: static !important;
    display: inline !important;
    margin-left: 0.45em !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    font-size: 0.65em !important;
    vertical-align: middle !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    left: auto !important;
    transform: none !important;
    -webkit-transform: none !important;
    background: none !important;
    border: none !important;
    border-radius: 0 !important;
    width: auto !important;
    height: auto !important;
    line-height: normal !important;
    opacity: 0.9 !important;
    text-shadow: 0 1px 5px rgba(0,0,0,0.7) !important;
    box-shadow: none !important;
}

/* Also suppress the heading ornament rule that fires on h1 inside hero */
html body .top-header h1:after,
html body .top-header h2:after {
    display: none !important;
    content: none !important;
}

/* ── 3 & 4. Fix quantity +/− buttons — correct selector + sizing ──
   The plugin renders: .add-to-cart-button > button.minus + .quantity > input + button.plus
   The old CSS targeted .quantity .minus / .quantity .plus — which never matched.
   Buttons were 67×55px with tiny text. Correct to 40×46px to match input height. */
html body .wc-product-table .add-to-cart-button button.minus,
html body .wc-product-table .add-to-cart-button button.plus,
html body .wc-product-table .add-to-cart-wrapper button.minus,
html body .wc-product-table .add-to-cart-wrapper button.plus,
html body table.wc-product-table td button.minus,
html body table.wc-product-table td button.plus {
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    width: 40px !important;
    min-width: 40px !important;
    max-width: 40px !important;
    height: 46px !important;
    min-height: 46px !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    background-color: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.3rem !important;
    font-weight: 700 !important;
    line-height: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
    cursor: pointer !important;
    box-shadow: none !important;
    text-indent: 0 !important;
    text-shadow: none !important;
    vertical-align: middle !important;
    overflow: visible !important;
    text-overflow: clip !important;
    white-space: nowrap !important;
}

html body .wc-product-table .add-to-cart-button button.minus,
html body .wc-product-table .add-to-cart-wrapper button.minus,
html body table.wc-product-table td button.minus {
    border-radius: 4px 0 0 4px !important;
    border-right: none !important;
}

html body .wc-product-table .add-to-cart-button button.plus,
html body .wc-product-table .add-to-cart-wrapper button.plus,
html body table.wc-product-table td button.plus {
    border-radius: 0 4px 4px 0 !important;
    border-left: none !important;
}

html body .wc-product-table .add-to-cart-button button.minus:hover,
html body .wc-product-table .add-to-cart-button button.plus:hover,
html body .wc-product-table .add-to-cart-wrapper button.minus:hover,
html body .wc-product-table .add-to-cart-wrapper button.plus:hover,
html body table.wc-product-table td button.minus:hover,
html body table.wc-product-table td button.plus:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    background-color: #C9A961 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
}

/* Match qty input height and remove conflicting radius so group looks cohesive */
html body table.wc-product-table input.qty,
html body table.wc-product-table input[type="number"].qty,
html body .wc-product-table td input.qty,
html body .wc-product-table .add-to-cart-button input.qty {
    height: 46px !important;
    min-height: 46px !important;
    border-radius: 0 !important;
    border-left: 1px solid #C9A961 !important;
    border-right: 1px solid #C9A961 !important;
    border-top: 2px solid #C9A961 !important;
    border-bottom: 2px solid #C9A961 !important;
    vertical-align: middle !important;
}

/* Ensure .add-to-cart-button lays out as a flex row */
html body .wc-product-table .add-to-cart-button,
html body .wc-product-table .add-to-cart-wrapper .add-to-cart-button {
    display: inline-flex !important;
    align-items: center !important;
    gap: 0 !important;
    flex-wrap: nowrap !important;
}

/* =============================================================
   DragonBridge — Full-Width Layout & WooCommerce Theme (v1.4.7)
   1. Make the main content container fluid (full-width)
   2. Comprehensive WooCommerce CSS: shop grid, single product,
      cart, checkout, my account, notices, forms, ratings
   ============================================================= */

/* ── 1. Full-width container ──────────────────────────────────
   Bootstrap .container caps at 1170 px. On wide monitors the
   content looked narrow with large blank margins. Switch to
   fluid with comfortable gutters so content fills the viewport. */
html body .main-container,
html body #site-content.main-container,
html body .container.main-container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 32px !important;
    padding-right: 32px !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
    box-sizing: border-box !important;
}

/* WooCommerce wraps content in its own .container; make that fluid too */
html body .woocommerce,
html body .woocommerce-page .woocommerce,
html body .woocommerce-page > .container,
html body .woocommerce-checkout .container,
html body .woocommerce-cart .container {
    max-width: 100% !important;
    width: 100% !important;
    padding-left: 0 !important;
    padding-right: 0 !important;
}

/* Keep the inner row/article filling the full width */
html body .row.single-page,
html body .row.home-large-hero-content,
html body .row.woo-page-row {
    width: 100% !important;
    max-width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

@media (max-width: 768px) {
    html body .main-container,
    html body #site-content.main-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* ── 2. WooCommerce — Global palette reset ───────────────────
   Many WooCommerce elements rely on Storefront/default variables.
   Override them to match the DragonBridge palette. */

/* ─── 2a. Shop page (product grid) ──────────────────────────── */
html body .woocommerce ul.products,
html body .woocommerce-page ul.products {
    display: grid !important;
    grid-template-columns: repeat(3, 1fr) !important;
    gap: 28px !important;
    list-style: none !important;
    margin: 0 0 40px !important;
    padding: 0 !important;
}

@media (max-width: 900px) {
    html body .woocommerce ul.products,
    html body .woocommerce-page ul.products {
        grid-template-columns: repeat(2, 1fr) !important;
    }
}

@media (max-width: 560px) {
    html body .woocommerce ul.products,
    html body .woocommerce-page ul.products {
        grid-template-columns: 1fr !important;
    }
}

/* Product card */
html body .woocommerce ul.products li.product,
html body .woocommerce-page ul.products li.product {
    background: #FAF4E4 !important;
    border: 2px solid #C9A961 !important;
    border-top: 5px solid #6B1414 !important;
    border-radius: 4px !important;
    box-shadow: 0 4px 18px rgba(74,14,14,0.10) !important;
    padding: 0 0 20px !important;
    margin: 0 !important;
    overflow: hidden !important;
    transition: box-shadow 0.25s ease, transform 0.2s ease !important;
    float: none !important;
    width: auto !important;
    display: flex !important;
    flex-direction: column !important;
}

html body .woocommerce ul.products li.product:hover,
html body .woocommerce-page ul.products li.product:hover {
    box-shadow: 0 8px 32px rgba(74,14,14,0.20) !important;
    transform: translateY(-3px) !important;
}

/* Product image */
html body .woocommerce ul.products li.product img {
    width: 100% !important;
    height: 220px !important;
    object-fit: cover !important;
    display: block !important;
    margin: 0 0 16px !important;
    border-radius: 0 !important;
}

/* Product title */
html body .woocommerce ul.products li.product .woocommerce-loop-product__title,
html body .woocommerce ul.products li.product h2.woocommerce-loop-product__title {
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    letter-spacing: 0.05em !important;
    text-align: center !important;
    padding: 4px 16px 8px !important;
    margin: 0 !important;
    background: none !important;
}

/* Product price */
html body .woocommerce ul.products li.product .price,
html body .woocommerce ul.products li.product .price .amount,
html body .woocommerce ul.products li.product .price .woocommerce-Price-amount {
    display: block !important;
    text-align: center !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    margin: 0 0 14px !important;
    background: none !important;
    clip-path: none !important;
}

/* Shop add-to-cart button */
html body .woocommerce ul.products li.product a.button,
html body .woocommerce-page ul.products li.product a.button,
html body .woocommerce ul.products li.product .button {
    display: block !important;
    width: calc(100% - 32px) !important;
    margin: auto 16px 0 !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    padding: 12px 18px !important;
    text-decoration: none !important;
    transition: background 0.2s ease, transform 0.15s ease !important;
    clip-path: none !important;
    box-shadow: 0 2px 0 #4A0E0E, 0 4px 10px rgba(74,14,14,0.18) !important;
}

html body .woocommerce ul.products li.product a.button:hover,
html body .woocommerce-page ul.products li.product a.button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
    transform: translateY(-1px) !important;
}

/* Sale badge */
html body .woocommerce ul.products li.product .onsale,
html body .woocommerce span.onsale {
    background: #6B1414 !important;
    color: #E5C46A !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    border-radius: 50% !important;
    min-width: 52px !important;
    min-height: 52px !important;
    line-height: 52px !important;
    text-align: center !important;
    padding: 0 !important;
    border: 2px solid #C9A961 !important;
}

/* ─── 2b. Single product page ───────────────────────────────── */
html body .woocommerce div.product {
    background: #FAF4E4 !important;
    border: 2px solid #C9A961 !important;
    border-top: 6px solid #6B1414 !important;
    border-radius: 4px !important;
    padding: 32px !important;
    box-shadow: 0 4px 24px rgba(74,14,14,0.10) !important;
    margin-bottom: 40px !important;
}

html body .woocommerce div.product .product_title,
html body .woocommerce div.product h1.product_title {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: clamp(1.6rem, 2.8vw, 2.4rem) !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    letter-spacing: 0.05em !important;
    margin-bottom: 12px !important;
    background: none !important;
}

html body .woocommerce div.product .price,
html body .woocommerce div.product p.price,
html body .woocommerce div.product span.price {
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.6rem !important;
    font-weight: 700 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    background: none !important;
    clip-path: none !important;
}

html body .woocommerce div.product .woocommerce-product-details__short-description,
html body .woocommerce div.product .woocommerce-product-details__short-description p {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.1rem !important;
    color: #2A1810 !important;
    line-height: 1.7 !important;
}

/* Single product add-to-cart */
html body .woocommerce div.product form.cart .single_add_to_cart_button,
html body .woocommerce .single_add_to_cart_button.button {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.9rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 14px 36px !important;
    box-shadow: 0 2px 0 #4A0E0E, 0 6px 16px rgba(74,14,14,0.22) !important;
    transition: all 0.2s ease !important;
    clip-path: none !important;
}

html body .woocommerce div.product form.cart .single_add_to_cart_button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 4px 0 #4A0E0E, 0 8px 18px rgba(74,14,14,0.28) !important;
}

/* ─── 2c. WooCommerce Notices / Alerts ──────────────────────── */
html body .woocommerce-message,
html body .woocommerce-info,
html body .woocommerce-error,
html body .wc-forward {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.05rem !important;
    border-radius: 4px !important;
    border-top: 5px solid #6B1414 !important;
    padding: 16px 20px 16px 56px !important;
    margin-bottom: 24px !important;
}

html body .woocommerce-message {
    background: #EFE2C4 !important;
    color: #2A1810 !important;
    border-top-color: #1F4A2C !important;
}

html body .woocommerce-info {
    background: #F5EBD6 !important;
    color: #2A1810 !important;
    border-top-color: #C9A961 !important;
}

html body .woocommerce-error {
    background: #FAF4E4 !important;
    color: #6B1414 !important;
    border-top-color: #6B1414 !important;
}

html body .woocommerce-message a.button,
html body .woocommerce-info a.button,
html body .woocommerce-error a.button {
    background: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    padding: 10px 20px !important;
    text-transform: uppercase !important;
    letter-spacing: 0.08em !important;
}

/* ─── 2d. Cart page ─────────────────────────────────────────── */
html body .woocommerce table.shop_table,
html body .woocommerce-cart table.shop_table,
html body .woocommerce-page table.shop_table {
    background: #FAF4E4 !important;
    border: 2px solid #C9A961 !important;
    border-radius: 6px !important;
    overflow: hidden !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    width: 100% !important;
    box-shadow: 0 4px 18px rgba(74,14,14,0.10) !important;
}

html body .woocommerce table.shop_table th,
html body .woocommerce-cart table.shop_table thead th {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 14px 18px !important;
    border: none !important;
    border-bottom: 2px solid #C9A961 !important;
}

html body .woocommerce table.shop_table td,
html body .woocommerce-cart table.shop_table tbody td {
    background: transparent !important;
    color: #2A1810 !important;
    -webkit-text-fill-color: #2A1810 !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.05rem !important;
    padding: 16px 18px !important;
    border-bottom: 1px solid rgba(201,169,97,0.4) !important;
    border-top: none !important;
    vertical-align: middle !important;
}

html body .woocommerce table.cart tbody tr:nth-child(even) td {
    background: #EFE2C4 !important;
}

html body .woocommerce table.cart td.product-name a,
html body .woocommerce table.cart td.product-name {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    text-decoration: none !important;
}

html body .woocommerce table.cart td.product-price .amount,
html body .woocommerce table.cart td.product-subtotal .amount {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
}

/* Cart totals panel */
html body .woocommerce .cart-collaterals .cart_totals,
html body .woocommerce-cart .cart_totals {
    background: #FAF4E4 !important;
    border: 2px solid #C9A961 !important;
    border-top: 5px solid #6B1414 !important;
    border-radius: 4px !important;
    padding: 24px !important;
    box-shadow: 0 4px 16px rgba(74,14,14,0.10) !important;
}

html body .woocommerce .cart_totals h2,
html body .woocommerce-cart .cart_totals h2 {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    font-size: 1.2rem !important;
    letter-spacing: 0.08em !important;
    margin-bottom: 16px !important;
}

html body .woocommerce .cart_totals table th,
html body .woocommerce .cart_totals table td {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.05rem !important;
    color: #2A1810 !important;
    padding: 10px 12px !important;
    border-bottom: 1px solid rgba(201,169,97,0.35) !important;
}

html body .woocommerce .cart_totals .order-total th,
html body .woocommerce .cart_totals .order-total td {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 1.15rem !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-bottom: none !important;
}

/* Proceed to checkout button */
html body .woocommerce .wc-proceed-to-checkout a.checkout-button,
html body .woocommerce a.checkout-button.button {
    display: block !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    text-align: center !important;
    padding: 16px 24px !important;
    box-shadow: 0 2px 0 #4A0E0E, 0 6px 16px rgba(74,14,14,0.22) !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    margin-top: 16px !important;
}

html body .woocommerce .wc-proceed-to-checkout a.checkout-button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
}

/* ─── 2e. Checkout page ─────────────────────────────────────── */
html body .woocommerce-checkout #customer_details,
html body .woocommerce-checkout #order_review_heading {
    font-family: 'Cinzel', Georgia, serif !important;
}

html body .woocommerce-checkout .woocommerce-billing-fields h3,
html body .woocommerce-checkout .woocommerce-shipping-fields h3,
html body .woocommerce-checkout #order_review_heading {
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 1.15rem !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    letter-spacing: 0.08em !important;
    border-bottom: 2px solid #C9A961 !important;
    padding-bottom: 10px !important;
    margin-bottom: 20px !important;
}

/* Checkout form fields */
html body .woocommerce form .form-row label,
html body .woocommerce-checkout form .form-row label {
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    color: #6B1414 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    margin-bottom: 6px !important;
    display: block !important;
}

html body .woocommerce form .form-row input.input-text,
html body .woocommerce form .form-row textarea,
html body .woocommerce form .form-row select,
html body .woocommerce-checkout form input[type="text"],
html body .woocommerce-checkout form input[type="email"],
html body .woocommerce-checkout form input[type="tel"],
html body .woocommerce-checkout form input[type="password"],
html body .woocommerce-checkout form select,
html body .woocommerce-checkout form textarea {
    background: #FAF4E4 !important;
    border: 2px solid rgba(201,169,97,0.6) !important;
    border-radius: 4px !important;
    color: #2A1810 !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1rem !important;
    padding: 10px 14px !important;
    width: 100% !important;
    box-shadow: inset 0 1px 4px rgba(74,14,14,0.07) !important;
    transition: border-color 0.2s ease !important;
}

html body .woocommerce form .form-row input.input-text:focus,
html body .woocommerce-checkout form input:focus,
html body .woocommerce-checkout form select:focus,
html body .woocommerce-checkout form textarea:focus {
    border-color: #6B1414 !important;
    outline: none !important;
    box-shadow: 0 0 0 3px rgba(107,20,20,0.15) !important;
}

/* Payment box */
html body #add_payment_method #payment,
html body .woocommerce-cart #payment,
html body .woocommerce-checkout #payment {
    background: #F5EBD6 !important;
    border: 2px solid rgba(201,169,97,0.4) !important;
    border-radius: 4px !important;
}

html body .woocommerce-checkout #payment .payment_methods li label {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.05rem !important;
    color: #2A1810 !important;
}

html body .woocommerce-checkout #payment div.payment_box {
    background: rgba(201,169,97,0.12) !important;
    color: #2A1810 !important;
    border-radius: 4px !important;
}

/* Place order button */
html body #place_order,
html body .woocommerce-checkout #place_order {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 1rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    padding: 16px 40px !important;
    width: 100% !important;
    box-shadow: 0 3px 0 #4A0E0E, 0 6px 18px rgba(74,14,14,0.25) !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    clip-path: none !important;
}

html body #place_order:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
    transform: translateY(-1px) !important;
}

/* ─── 2f. My Account page ───────────────────────────────────── */
html body .woocommerce-MyAccount-navigation {
    background: #FAF4E4 !important;
    border: 2px solid #C9A961 !important;
    border-top: 5px solid #6B1414 !important;
    border-radius: 4px !important;
    padding: 8px 0 !important;
    overflow: hidden !important;
}

html body .woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

html body .woocommerce-MyAccount-navigation ul li a {
    display: block !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.88rem !important;
    font-weight: 600 !important;
    color: #2A1810 !important;
    -webkit-text-fill-color: #2A1810 !important;
    letter-spacing: 0.06em !important;
    text-transform: uppercase !important;
    padding: 12px 20px !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(201,169,97,0.3) !important;
    transition: background 0.2s ease, color 0.2s ease !important;
}

html body .woocommerce-MyAccount-navigation ul li:last-child a {
    border-bottom: none !important;
}

html body .woocommerce-MyAccount-navigation ul li a:hover,
html body .woocommerce-MyAccount-navigation ul li.is-active a {
    background: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    padding-left: 28px !important;
}

/* My Account content area */
html body .woocommerce-MyAccount-content {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.05rem !important;
    color: #2A1810 !important;
    line-height: 1.7 !important;
}

html body .woocommerce-MyAccount-content h2,
html body .woocommerce-MyAccount-content h3 {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    font-weight: 700 !important;
    border-bottom: 2px solid #C9A961 !important;
    padding-bottom: 8px !important;
    margin-bottom: 20px !important;
}

/* ─── 2g. Order tables (My Account & Thank You page) ─────────── */
html body .woocommerce-orders-table,
html body .woocommerce-table--order-details,
html body .woocommerce-table--order-downloads {
    width: 100% !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    border-collapse: separate !important;
    border-spacing: 0 !important;
    background: #FAF4E4 !important;
}

html body .woocommerce-orders-table th,
html body .woocommerce-table--order-details thead th {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.82rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 12px 16px !important;
    border: none !important;
}

html body .woocommerce-orders-table td,
html body .woocommerce-table--order-details td {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1rem !important;
    color: #2A1810 !important;
    padding: 12px 16px !important;
    border-bottom: 1px solid rgba(201,169,97,0.35) !important;
}

/* Order status chips */
html body .woocommerce-orders-table .woocommerce-orders-table__cell-order-status mark,
html body mark.order-status {
    background: #6B1414 !important;
    color: #E5C46A !important;
    border-radius: 3px !important;
    padding: 3px 10px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.78rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
}

/* ─── 2h. Star ratings ──────────────────────────────────────── */
html body .woocommerce .star-rating,
html body .woocommerce .star-rating span {
    color: #C9A961 !important;
}

html body .woocommerce .star-rating::before,
html body .woocommerce .star-rating span::before {
    color: #C9A961 !important;
}

/* ─── 2i. Global WooCommerce button overrides ───────────────── */
html body .woocommerce a.button,
html body .woocommerce button.button,
html body .woocommerce input.button,
html body .woocommerce #respond input#submit {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 12px 24px !important;
    cursor: pointer !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
    clip-path: none !important;
    box-shadow: 0 2px 0 #4A0E0E !important;
}

html body .woocommerce a.button:hover,
html body .woocommerce button.button:hover,
html body .woocommerce input.button:hover,
html body .woocommerce #respond input#submit:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
}

html body .woocommerce a.button.alt,
html body .woocommerce button.button.alt,
html body .woocommerce input.button.alt,
html body .woocommerce #respond input#submit.alt {
    background: linear-gradient(180deg, #1F4A2C 0%, #143820 100%) !important;
    color: #FAF4E4 !important;
    -webkit-text-fill-color: #FAF4E4 !important;
    border-color: #C9A961 !important;
}

html body .woocommerce a.button.alt:hover,
html body .woocommerce button.button.alt:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
}

/* =============================================================
   DragonBridge — Layout & Table Polish (v1.4.8)
   Fixes:
     1. Hero height collapse (both children absolute → no flow height)
     2. Hero breaks out of the v1.4.7 container padding (32px sides)
        so the image is full-viewport-width again
     3. Green Add to Cart inside Barn2 table (.alt override was
        catching .single_add_to_cart_button.button.alt in the table)
     4. Elementor two-column section collapses to full-width so the
        product table fills the whole page, not just the left 50%
     5. Tone down the heavy background asterisk patterns
     6. Streamline the product table visual density
   ============================================================= */

/* ── 1 & 2. Fix hero height and full-viewport width ─────────── */
/* Give the hero a guaranteed height so absolutely-positioned children
   (single-image + header-title) don't collapse the container to 0.
   Also counteract the 32px padding we added to .main-container in
   v1.4.7 so the hero bleeds edge-to-edge. */
html body .top-header.singular-heading {
    
    max-height: 440px !important;
    margin-left: -32px !important;
    margin-right: -32px !important;
    width: calc(100% + 64px) !important;
    max-width: none !important;
    overflow: hidden !important;
}

html body .top-header.home-heading {
    margin-left: -32px !important;
    margin-right: -32px !important;
    width: calc(100% + 64px) !important;
    max-width: none !important;
}

html body.dragonbridge-large-hero .top-header.home-large-hero {
    margin-left: -32px !important;
    margin-right: -32px !important;
    width: calc(100% + 64px) !important;
    max-width: none !important;
    overflow: visible !important; /* keep medallion visible */
}

/* The ::before trim strip and ::after medallion need to stay aligned
   after the width/margin adjustment — they're position:absolute on
   .top-header so they automatically span the new full width. */

/* Mobile: counteract the 16px container padding */
@media (max-width: 768px) {
    html body .top-header.singular-heading,
    html body .top-header.home-heading {
        margin-left: -16px !important;
        margin-right: -16px !important;
        width: calc(100% + 32px) !important;
        min-height: 200px !important;
        height: 32vh !important;
        max-height: 320px !important;
    }

    html body.dragonbridge-large-hero .top-header.home-large-hero {
        margin-left: -16px !important;
        margin-right: -16px !important;
        width: calc(100% + 32px) !important;
    }
}

/* Ensure the hero image fills the container correctly */
html body .top-header.singular-heading .single-image,
html body .top-header.home-heading .single-image {
    position: absolute !important;
    inset: 0 !important;
    width: 100% !important;
    height: 100% !important;
    overflow: hidden !important;
}

html body .top-header.singular-heading .single-image img,
html body .top-header.home-heading .single-image img,
html body .top-header.singular-heading .single-image .bg-single-image,
html body .top-header.home-heading .single-image .bg-single-image {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    object-position: center center !important;
    display: block !important;
}

html body .top-header.singular-heading .bg-single-image,
html body .top-header.home-heading .bg-single-image {
    position: absolute !important;
    inset: 0 !important;
    background-size: cover !important;
    background-position: center center !important;
}

/* ── 3. Fix green Add-to-Cart button in product table ──────── */
/* v1.4.7 added a .alt override (forest green) for WC secondary
   buttons. The Barn2 plugin's table add-to-cart uses .button.alt
   class and was caught by that rule. Force burgundy for all
   buttons inside the product table regardless of .alt class. */
html body .wc-product-table .add-to-cart-button .button,
html body .wc-product-table .add-to-cart-button button,
html body .wc-product-table .add-to-cart-button .button.alt,
html body .wc-product-table .add-to-cart-button button.alt,
html body .wc-product-table .add-to-cart-button .single_add_to_cart_button,
html body .wc-product-table-wrapper .button.alt,
html body .wc-product-table-wrapper button.alt,
html body table.wc-product-table button.alt,
html body table.wc-product-table .button.alt {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    background-color: #6B1414 !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    padding: 12px 26px !important;
    box-shadow: 0 2px 0 #4A0E0E, 0 4px 10px rgba(74,14,14,0.18) !important;
}

html body .wc-product-table .add-to-cart-button .button:hover,
html body .wc-product-table .add-to-cart-button button:hover,
html body .wc-product-table .add-to-cart-button .button.alt:hover,
html body .wc-product-table .add-to-cart-button button.alt:hover,
html body .wc-product-table-wrapper .button.alt:hover,
html body table.wc-product-table button.alt:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    background-color: #C9A961 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
    transform: translateY(-1px) !important;
}

/* ── 4. Elementor columns: full-width EXCEPT WooCommerce pages ─ */
/* The tickets page (and other content pages) use Elementor sections
   where we want columns to fill available width. However, WooCommerce
   cart/checkout/account pages rely on Elementor columns for their
   own multi-column layouts (cart items + totals side-by-side), so
   we scope this rule to exclude those pages. */
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-column,
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-col-100,
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-col-50,
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-col-33,
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-col-66 {
    width: 100% !important;
    max-width: 100% !important;
    flex: 0 0 100% !important;
}

body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-section .elementor-container,
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-section.elementor-section-boxed .elementor-container {
    max-width: 100% !important;
    width: 100% !important;
}

body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-row,
body:not(.woocommerce-cart):not(.woocommerce-checkout):not(.woocommerce-account):not(.woocommerce) .elementor-section > .elementor-container > .elementor-row {
    flex-wrap: wrap !important;
}

/* WooCommerce pages: restore normal Elementor column widths so
   cart-form + order-totals, checkout columns, etc. display correctly */
body.woocommerce-cart .elementor-col-50,
body.woocommerce-checkout .elementor-col-50,
body.woocommerce-account .elementor-col-50 {
    flex: 0 0 50% !important;
    max-width: 50% !important;
    width: 50% !important;
}
body.woocommerce-cart .elementor-col-33,
body.woocommerce-checkout .elementor-col-33 {
    flex: 0 0 33.333% !important;
    max-width: 33.333% !important;
    width: 33.333% !important;
}
body.woocommerce-cart .elementor-col-66,
body.woocommerce-checkout .elementor-col-66 {
    flex: 0 0 66.666% !important;
    max-width: 66.666% !important;
    width: 66.666% !important;
}

/* ── 5. Tone down background asterisk/star pattern ──────────
   These decorative asterisks come from SVG background-images on
   .page-area and related elements. Lower their opacity significantly
   so they read as subtle texture rather than visual noise. */
html body .page-area {
    background-image: none !important;
}

html body .page-area:after,
html body .main-container:after {
    opacity: 0.06 !important;
}

/* ── 6. Streamline product table: tighter, cleaner look ─────── */
/* Remove the outer container padding gap so table fills its box */
html body .wc-product-table-wrapper {
    margin: 0 0 32px !important;
    width: 100% !important;
    max-width: 100% !important;
}

/* Tighten cell padding for a more elegant, readable table */
html body table.wc-product-table tbody td {
    padding: 14px 18px !important;
}

html body table.wc-product-table thead th {
    padding: 12px 18px !important;
}

/* Product name: slightly larger, more presence */
html body table.wc-product-table tbody td.col-name {
    font-size: 1.1rem !important;
}

/* Price: right-align and make it stand out */
html body table.wc-product-table tbody td.col-price {
    text-align: right !important;
    font-size: 1.2rem !important;
    white-space: nowrap !important;
}

/* Qty+Cart column: compact and vertically centered */
html body table.wc-product-table tbody td.col-buy,
html body table.wc-product-table tbody td.col-add-to-cart {
    text-align: right !important;
    white-space: nowrap !important;
    padding-right: 20px !important;
}

/* Qty input: clean pill shape matching buttons */
html body table.wc-product-table input.qty,
html body .wc-product-table .add-to-cart-button input.qty {
    width: 52px !important;
    min-width: 52px !important;
    text-align: center !important;
    font-size: 1rem !important;
    font-weight: 700 !important;
}

/* Subtly separate product table sections (if the page has multiple) */
html body .wc-product-table-wrapper + h2,
html body .wc-product-table-wrapper + h3,
html body .wc-product-table-wrapper + p + h2 {
    margin-top: 40px !important;
    padding-top: 20px !important;
    border-top: 2px solid rgba(201,169,97,0.35) !important;
}

/* =================================================================
   DragonBridge v1.4.10 — WooCommerce BLOCK cart/checkout + mini-cart
   Replaces v1.4.9 which targeted classic .shop_table / .cart_totals
   markup that doesn't exist on this site. This site uses the modern
   WooCommerce blocks: .wp-block-woocommerce-cart, .wc-block-checkout,
   .wc-block-components-sidebar-layout, etc.
   Also fixes:
     1. .single-entry-summary max-width:78ch squeezing cart to 657px
        in a 1440 viewport, with -192px negative margins overflowing
        the parent and pushing content off-screen left.
     2. Mini cart in nav bar — proper gold-pill styling.
     3. Hero header right-edge overflow gap.
   ================================================================= */

/* ── 1. Release the 78ch max-width clamp on WooCommerce pages ──────
   The theme constrains .single-entry-summary to 78ch (~656px) for
   readability on regular pages. WooCommerce cart/checkout/account
   need full width for their block layouts. */
body.woocommerce-cart  .col-md-12 > article .single-entry-summary,
body.woocommerce-cart  .col-md-12 > article .entry-content,
body.woocommerce-checkout .col-md-12 > article .single-entry-summary,
body.woocommerce-checkout .col-md-12 > article .entry-content,
body.woocommerce-account  .col-md-12 > article .single-entry-summary,
body.woocommerce-account  .col-md-12 > article .entry-content {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* Also: block cart sets negative left/right margins to expand beyond
   parent (the WordPress "alignwide" treatment). Neutralize on woo pages. */
body.woocommerce-cart .wp-block-woocommerce-cart.alignwide,
body.woocommerce-cart .wp-block-woocommerce-cart,
body.woocommerce-checkout .wp-block-woocommerce-checkout.alignwide,
body.woocommerce-checkout .wp-block-woocommerce-checkout {
    margin-left: 0 !important;
    margin-right: 0 !important;
    max-width: 100% !important;
    width: 100% !important;
}

/* ── 2. Block cart/checkout sidebar layout — two-column desktop ── */
body.woocommerce-cart .wc-block-components-sidebar-layout,
body.woocommerce-checkout .wc-block-components-sidebar-layout {
    display: grid !important;
    grid-template-columns: minmax(0, 1.75fr) minmax(320px, 1fr) !important;
    gap: 40px !important;
    width: 100% !important;
    max-width: 100% !important;
    margin: 0 !important;
}

body.woocommerce-cart .wc-block-components-main,
body.woocommerce-cart .wc-block-cart__main,
body.woocommerce-checkout .wc-block-checkout__main {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
}

body.woocommerce-cart .wc-block-components-sidebar,
body.woocommerce-cart .wc-block-cart__sidebar,
body.woocommerce-checkout .wc-block-checkout__sidebar {
    min-width: 0 !important;
    width: 100% !important;
    max-width: 100% !important;
    background: rgba(74,14,14,0.04) !important;
    border: 1px solid rgba(201,169,97,0.3) !important;
    border-radius: 6px !important;
    padding: 24px !important;
}

/* ── 3. Block cart line items table ─────────────────────────────── */
body.woocommerce-cart .wc-block-cart-items {
    width: 100% !important;
    border-collapse: collapse !important;
    background: transparent !important;
}

body.woocommerce-cart .wc-block-cart-items__header {
    background: linear-gradient(180deg, #3A0A0A 0%, #2A0606 100%) !important;
    border-bottom: 2px solid #C9A961 !important;
}

body.woocommerce-cart .wc-block-cart-items__header th {
    color: #E5C46A !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    padding: 14px 16px !important;
    text-align: left !important;
}

body.woocommerce-cart .wc-block-cart-items__row {
    border-bottom: 1px solid rgba(201,169,97,0.2) !important;
}

body.woocommerce-cart .wc-block-cart-items__row td {
    padding: 20px 16px !important;
    vertical-align: top !important;
    background: transparent !important;
}

body.woocommerce-cart .wc-block-cart-item__image {
    width: 100px !important;
}

body.woocommerce-cart .wc-block-cart-item__image img {
    border: 1px solid rgba(201,169,97,0.35) !important;
    border-radius: 4px !important;
    max-width: 84px !important;
    height: auto !important;
}

body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-name {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #4A0E0E !important;
    font-size: 1.05rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
    text-decoration: none !important;
}

body.woocommerce-cart .wc-block-cart-item__product .wc-block-components-product-name:hover {
    color: #6B1414 !important;
    text-decoration: underline !important;
}

body.woocommerce-cart .wc-block-cart-item__total .wc-block-components-product-price__value,
body.woocommerce-cart .wc-block-components-product-price__value {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #6B1414 !important;
    font-weight: 700 !important;
    font-size: 1.1rem !important;
}

/* Quantity selector inside cart line item */
body.woocommerce-cart .wc-block-components-quantity-selector {
    display: inline-flex !important;
    align-items: center !important;
    border: 1px solid rgba(201,169,97,0.5) !important;
    border-radius: 4px !important;
    background: #FAF4E4 !important;
    overflow: hidden !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__button {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    border: none !important;
    width: 36px !important;
    height: 36px !important;
    font-size: 1.1rem !important;
    font-weight: 700 !important;
    cursor: pointer !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
}

body.woocommerce-cart .wc-block-components-quantity-selector__input {
    background: transparent !important;
    border: none !important;
    text-align: center !important;
    width: 48px !important;
    height: 36px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    color: #4A0E0E !important;
}

/* Remove link */
body.woocommerce-cart .wc-block-cart-item__remove-link {
    color: #6B1414 !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 0.9rem !important;
    text-decoration: underline !important;
}

body.woocommerce-cart .wc-block-cart-item__remove-link:hover {
    color: #C9A961 !important;
}

/* ── 4. Totals sidebar (block cart & checkout) ──────────────────── */
body.woocommerce-cart .wc-block-cart__totals-title,
body.woocommerce-checkout .wc-block-checkout__totals-title,
body.woocommerce-cart .wp-block-woocommerce-cart-order-summary-heading-block,
body.woocommerce-checkout .wp-block-woocommerce-checkout-order-summary-heading-block {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #4A0E0E !important;
    font-size: 1.1rem !important;
    letter-spacing: 0.14em !important;
    text-transform: uppercase !important;
    padding-bottom: 12px !important;
    margin-bottom: 18px !important;
    border-bottom: 2px solid rgba(201,169,97,0.4) !important;
}

body.woocommerce-cart .wc-block-components-totals-item,
body.woocommerce-checkout .wc-block-components-totals-item {
    padding: 10px 0 !important;
    border-bottom: 1px solid rgba(201,169,97,0.2) !important;
}

body.woocommerce-cart .wc-block-components-totals-item__label,
body.woocommerce-checkout .wc-block-components-totals-item__label {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: #3A2A2A !important;
    font-size: 1rem !important;
}

body.woocommerce-cart .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-item__value {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #4A0E0E !important;
    font-weight: 700 !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item,
body.woocommerce-checkout .wc-block-components-totals-footer-item {
    padding-top: 14px !important;
    margin-top: 8px !important;
    border-top: 2px solid #C9A961 !important;
    border-bottom: none !important;
}

body.woocommerce-cart .wc-block-components-totals-footer-item .wc-block-components-totals-item__value,
body.woocommerce-checkout .wc-block-components-totals-footer-item .wc-block-components-totals-item__value {
    font-size: 1.4rem !important;
    color: #6B1414 !important;
}

/* Coupon panel */
body.woocommerce-cart .wc-block-components-totals-coupon,
body.woocommerce-checkout .wc-block-components-totals-coupon {
    border-top: 1px solid rgba(201,169,97,0.25) !important;
    padding-top: 12px !important;
}

body.woocommerce-cart .wc-block-components-panel__button,
body.woocommerce-checkout .wc-block-components-panel__button {
    color: #4A0E0E !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.78rem !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
}

body.woocommerce-cart .wc-block-components-text-input input,
body.woocommerce-checkout .wc-block-components-text-input input,
body.woocommerce-cart .wc-block-components-totals-coupon input,
body.woocommerce-checkout .wc-block-components-totals-coupon input {
    border: 1px solid rgba(201,169,97,0.55) !important;
    border-radius: 4px !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1rem !important;
    padding: 10px 14px !important;
    background: #FAF4E4 !important;
}

body.woocommerce-cart .wc-block-components-text-input input:focus,
body.woocommerce-checkout .wc-block-components-text-input input:focus {
    border-color: #6B1414 !important;
    outline: 2px solid rgba(201,169,97,0.4) !important;
    outline-offset: 1px !important;
}

/* ── 5. Proceed-to-checkout / Place Order primary CTA ───────────── */
body.woocommerce-cart .wc-block-cart__submit-button,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
    border: 2px solid #C9A961 !important;
    border-radius: 4px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 700 !important;
    font-size: 0.95rem !important;
    letter-spacing: 0.16em !important;
    text-transform: uppercase !important;
    padding: 16px 32px !important;
    width: 100% !important;
    box-shadow: 0 3px 0 #4A0E0E, 0 5px 12px rgba(74,14,14,0.22) !important;
    transition: all 0.18s ease !important;
}

body.woocommerce-cart .wc-block-cart__submit-button:hover,
body.woocommerce-checkout .wc-block-components-checkout-place-order-button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    border-color: #6B1414 !important;
    transform: translateY(-1px) !important;
}

/* Express payment (Amazon Pay, etc.) — visually scope it so it doesn't
   drown the sidebar in solid yellow. */
body.woocommerce-cart .wc-block-components-express-payment,
body.woocommerce-checkout .wc-block-components-express-payment {
    margin: 18px 0 !important;
    padding: 14px !important;
    background: rgba(250,244,228,0.55) !important;
    border: 1px solid rgba(201,169,97,0.3) !important;
    border-radius: 6px !important;
}

body.woocommerce-cart .wc-block-components-express-payment-continue-rule,
body.woocommerce-checkout .wc-block-components-express-payment-continue-rule {
    color: #6B1414 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.72rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    margin: 18px 0 !important;
}

/* ── 6. Empty cart message ──────────────────────────────────────── */
body.woocommerce-cart .wp-block-woocommerce-empty-cart-block,
body.woocommerce-cart .cart-empty {
    text-align: center !important;
    padding: 48px 24px !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: #4A0E0E !important;
    font-size: 1.15rem !important;
}

body.woocommerce-cart .wc-block-cart__empty-cart__title {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #6B1414 !important;
    font-size: 1.6rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    margin-bottom: 18px !important;
}

/* ── 7. Checkout form fields — Renaissance styling ──────────────── */
body.woocommerce-checkout .wc-block-components-form .wc-block-components-text-input label,
body.woocommerce-checkout .wc-block-checkout__main label {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: #4A0E0E !important;
    font-size: 0.95rem !important;
}

body.woocommerce-checkout .wc-block-components-title,
body.woocommerce-checkout .wp-block-woocommerce-checkout-contact-information-block .wc-block-components-title,
body.woocommerce-checkout .wc-block-checkout__main h2 {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #4A0E0E !important;
    letter-spacing: 0.12em !important;
    text-transform: uppercase !important;
    font-size: 1.15rem !important;
    border-bottom: 1px solid rgba(201,169,97,0.4) !important;
    padding-bottom: 10px !important;
}

body.woocommerce-checkout .wc-block-checkout__main .wc-block-components-checkout-step {
    margin-bottom: 30px !important;
    padding-bottom: 24px !important;
    border-bottom: 1px dashed rgba(201,169,97,0.3) !important;
}

/* ── 8. My Account (classic markup — still works on this template) ── */
body.woocommerce-account .woocommerce-MyAccount-navigation {
    background: rgba(74,14,14,0.06) !important;
    border: 1px solid rgba(201,169,97,0.3) !important;
    border-radius: 6px !important;
    padding: 16px 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li a {
    display: block !important;
    padding: 12px 24px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.85rem !important;
    letter-spacing: 0.1em !important;
    color: #4A0E0E !important;
    text-transform: uppercase !important;
    border-left: 3px solid transparent !important;
    transition: all 0.2s ease !important;
    text-decoration: none !important;
}

body.woocommerce-account .woocommerce-MyAccount-navigation ul li.is-active a,
body.woocommerce-account .woocommerce-MyAccount-navigation ul li a:hover {
    background: rgba(74,14,14,0.08) !important;
    border-left-color: #C9A961 !important;
    color: #6B1414 !important;
}

/* ── 9. Mini cart in the nav bar ────────────────────────────────── */
html body .header-cart {
    display: inline-flex !important;
    align-items: center !important;
    margin-left: 8px !important;
    padding: 0 !important;
}

html body .header-cart .cart-contents {
    display: inline-flex !important;
    align-items: center !important;
    gap: 8px !important;
    padding: 8px 14px 8px 12px !important;
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
    border: 1px solid rgba(74,14,14,0.35) !important;
    border-radius: 999px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.08em !important;
    text-decoration: none !important;
    box-shadow: 0 1px 0 rgba(255,255,255,0.25) inset, 0 2px 5px rgba(0,0,0,0.18) !important;
    transition: all 0.18s ease !important;
    position: relative !important;
    line-height: 1 !important;
}

html body .header-cart .cart-contents:hover {
    background: linear-gradient(180deg, #FAF4E4 0%, #E5C46A 100%) !important;
    color: #6B1414 !important;
    transform: translateY(-1px) !important;
    box-shadow: 0 1px 0 rgba(255,255,255,0.4) inset, 0 3px 8px rgba(0,0,0,0.25) !important;
}

html body .header-cart .cart-contents i.la-shopping-bag {
    position: static !important;
    font-size: 1.2rem !important;
    color: #4A0E0E !important;
    width: auto !important;
    height: auto !important;
    line-height: 1 !important;
    background: none !important;
}

html body .header-cart .cart-contents .count {
    position: absolute !important;
    top: -6px !important;
 
    min-width: 18px !important;
    height: 18px !important;
    padding: 0 5px !important;
    background: #6B1414 !important;
    color: #E5C46A !important;
    border: 1.5px solid #FAF4E4 !important;
    border-radius: 999px !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.7rem !important;
    font-weight: 700 !important;
    line-height: 16px !important;
    text-align: center !important;
    box-shadow: 0 1px 3px rgba(0,0,0,0.3) !important;
}

html body .header-cart .cart-contents .amount-cart {
    margin-left: 6px !important;
    padding: 0 !important;
    color: #4A0E0E !important;
    background: none !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.85rem !important;
    font-weight: 700 !important;
    letter-spacing: 0.04em !important;
}

html body .header-cart .cart-contents:hover i.la-shopping-bag,
html body .header-cart .cart-contents:hover .amount-cart {
    color: #6B1414 !important;
}

/* Sliding cart panel header */
html body ul.site-header-cart {
    background: #FAF4E4 !important;
    border-left: 3px solid #C9A961 !important;
}

html body ul.site-header-cart .cart-close {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
}

/* ── 10. Hero header right-edge overflow fix ────────────────────── */
/* .top-header had margin-left:-32px and width:calc(100% + 64px) which
   doesn't always cover the right edge depending on viewport. Use
   100vw + viewport-relative positioning so it always edge-bleeds. */
html body .top-header.singular-heading,
html body .top-header.home-heading {
    margin-left: calc(50% - 50vw) !important;
    margin-right: calc(50% - 50vw) !important;
    width: 100vw !important;
    max-width: 100vw !important;
}

/* ── 11. Responsive: stack cart/checkout columns on mobile ──────── */
@media (max-width: 900px) {
    body.woocommerce-cart .wc-block-components-sidebar-layout,
    body.woocommerce-checkout .wc-block-components-sidebar-layout {
        grid-template-columns: 1fr !important;
        gap: 28px !important;
    }
}

@media (max-width: 600px) {
    body.woocommerce-cart .wc-block-cart-items__header {
        display: none !important;
    }

    body.woocommerce-cart .wc-block-cart-items__row {
        display: grid !important;
        grid-template-columns: 100px 1fr !important;
        gap: 12px !important;
    }

    body.woocommerce-cart .wc-block-cart-item__total {
        grid-column: 1 / -1 !important;
        text-align: right !important;
    }

    html body .header-cart .cart-contents .amount-cart {
        display: none !important;
    }

    html body .header-cart .cart-contents {
        padding: 8px 10px !important;
    }
}

/* =================================================================
   DragonBridge v1.4.11 — Cart/checkout polish
   - Real fix for the 72ch / 78ch .single-entry-summary clamp
     (v1.4.10 used a selector that didn't match this DOM)
   - Hide product thumbnails on cart & checkout per design request
   - Bigger-specificity quantity selector so + button isn't clipped
   ================================================================= */

/* ── 1. Release ALL max-width clamps on .single-entry-summary &
   .single-content for WooCommerce pages. Use selectors that actually
   match this DOM (article IS .col-md-12 — not a child of it). ──── */
html body.woocommerce-cart .single-entry-summary,
html body.woocommerce-cart .single-content,
html body.woocommerce-cart article .single-entry-summary,
html body.woocommerce-cart article .single-content,
html body.woocommerce-checkout .single-entry-summary,
html body.woocommerce-checkout .single-content,
html body.woocommerce-checkout article .single-entry-summary,
html body.woocommerce-checkout article .single-content,
html body.woocommerce-account .single-entry-summary,
html body.woocommerce-account .single-content,
html body.woocommerce-account article .single-entry-summary,
html body.woocommerce-account article .single-content {
    max-width: 100% !important;
    width: 100% !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* And no centered-text-measure on cart/checkout/account paragraphs */
html body.woocommerce-cart .single-entry-summary p,
html body.woocommerce-checkout .single-entry-summary p,
html body.woocommerce-account .single-entry-summary p {
    max-width: none !important;
}

/* ── 2. Hide product thumbnails on cart & checkout ──────────────── */
/* Cart line items: hide both the header cell and each row's image cell */
html body.woocommerce-cart .wc-block-cart-items__header-image,
html body.woocommerce-cart .wc-block-cart-item__image,
html body.woocommerce-cart td.wc-block-cart-item__image,
html body.woocommerce-cart th.wc-block-cart-items__header-image {
    display: none !important;
    width: 0 !important;
    padding: 0 !important;
    border: 0 !important;
}

/* Order summary in checkout sidebar: hide the small thumbnails next to
   line items (these are .wc-block-components-order-summary-item__image
   or similar) */
html body.woocommerce-checkout .wc-block-components-order-summary-item__image,
html body.woocommerce-checkout .wc-block-components-order-summary-item__thumbnail,
html body.woocommerce-checkout .wc-block-cart-item__image,
html body.woocommerce-checkout .wc-block-cart-items__header-image {
    display: none !important;
    width: 0 !important;
    padding: 0 !important;
}

/* When image is hidden, give the product cell a little left padding so
   the name isn't flush against the table border */
html body.woocommerce-cart .wc-block-cart-item__product,
html body.woocommerce-checkout .wc-block-components-order-summary-item__description {
    padding-left: 8px !important;
}

/* ── 3. Quantity selector: ensure +/- and input all visible ────── */
html body .wc-block-components-quantity-selector {
    display: inline-flex !important;
    align-items: stretch !important;
    width: auto !important;
    min-width: 132px !important;
    max-width: 160px !important;
    border: 1px solid rgba(201,169,97,0.55) !important;
    border-radius: 4px !important;
    background: #FAF4E4 !important;
    overflow: hidden !important;
}

html body .wc-block-components-quantity-selector__button,
html body button.wc-block-components-quantity-selector__button {
    flex: 0 0 36px !important;
    width: 36px !important;
    min-width: 36px !important;
    max-width: 36px !important;
    height: 38px !important;
    padding: 0 !important;
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    color: #E5C46A !important;
    border: none !important;
    font-size: 1.2rem !important;
    font-weight: 700 !important;
    line-height: 38px !important;
    text-align: center !important;
    cursor: pointer !important;
}

html body .wc-block-components-quantity-selector__button--minus { order: 1 !important; }
html body .wc-block-components-quantity-selector__input        { order: 2 !important; flex: 1 1 auto !important; }
html body .wc-block-components-quantity-selector__button--plus { order: 3 !important; }

html body .wc-block-components-quantity-selector__input,
html body input.wc-block-components-quantity-selector__input {
    flex: 1 1 auto !important;
    min-width: 44px !important;
    width: 100% !important;
    height: 38px !important;
    padding: 0 6px !important;
    background: transparent !important;
    border: none !important;
    border-left: 1px solid rgba(201,169,97,0.4) !important;
    border-right: 1px solid rgba(201,169,97,0.4) !important;
    text-align: center !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.95rem !important;
    font-weight: 700 !important;
    color: #4A0E0E !important;
    -moz-appearance: textfield !important;
}

html body .wc-block-components-quantity-selector__input::-webkit-outer-spin-button,
html body .wc-block-components-quantity-selector__input::-webkit-inner-spin-button {
    -webkit-appearance: none !important;
    margin: 0 !important;
}

html body .wc-block-components-quantity-selector__button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    color: #4A0E0E !important;
}

/* =================================================================
   DragonBridge v1.4.12 — Gravity Forms Renaissance theme override
   Aligns all Gravity Forms instances with the site's burgundy/gold
   color palette, Cinzel/Cormorant Garamond typography, and parchment
   background inputs.
   ================================================================= */

/* CSS custom properties override (GF theme layer) */
.gform-theme {
    --gf-color-primary:          #6B1414 !important;
    --gf-color-primary-rgb:      107, 20, 20 !important;
    --gf-color-primary-contrast: #F5EBD6 !important;
}

/* ── Submit / Next / Previous buttons ─────────────────────────── */
html body .gform_button,
html body .gform-theme-button,
html body .gform-theme .gform_button,
html body .gform-theme .gform-theme-button {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    border: 2px solid #C9A961 !important;
    color: #F5EBD6 !important;
    -webkit-text-fill-color: #F5EBD6 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-weight: 600 !important;
    letter-spacing: 0.1em !important;
    text-transform: uppercase !important;
    border-radius: 4px !important;
    padding: 14px 24px !important;
    box-shadow: 0 2px 0 #4A0E0E, 0 4px 10px rgba(74,14,14,0.18) !important;
    transition: background 0.18s ease, transform 0.14s ease !important;
}

html body .gform_button:hover,
html body .gform-theme-button:hover,
html body .gform-theme .gform_button:hover,
html body .gform-theme .gform-theme-button:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    border-color: #6B1414 !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    transform: translateY(-1px) !important;
}

/* ── Form inputs, textareas, selects ──────────────────────────── */
html body .gform-theme input:not([type="submit"]):not([type="button"]):not([type="radio"]):not([type="checkbox"]),
html body .gform-theme textarea,
html body .gform-theme select,
html body .gform-theme .ginput_container input,
html body .gform-theme .ginput_container textarea,
html body .gform-theme .ginput_container select {
    background: #F6ECD8 !important;
    border: 1px solid #9D844C !important;
    color: #2A1810 !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 1.05rem !important;
    border-radius: 3px !important;
    padding: 10px 14px !important;
    transition: border-color 0.18s ease, box-shadow 0.18s ease !important;
}

html body .gform-theme input:focus,
html body .gform-theme textarea:focus,
html body .gform-theme select:focus {
    border-color: #6B1414 !important;
    outline: 2px solid rgba(201,169,97,0.4) !important;
    outline-offset: 1px !important;
    box-shadow: 0 0 0 3px rgba(107,20,20,0.08) !important;
}

/* ── Field labels ─────────────────────────────────────────────── */
html body .gform-theme .gfield_label,
html body .gform-theme label.gfield_label {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #6B1414 !important;
    font-weight: 600 !important;
    letter-spacing: 0.05em !important;
    font-size: 0.88rem !important;
    text-transform: uppercase !important;
}

/* Required asterisk */
html body .gform-theme .gfield_required {
    color: #C9A961 !important;
}

/* Sub-labels (e.g. Name field first/last) */
html body .gform-theme .gfield_label_before_complex,
html body .gform-theme .name_first label,
html body .gform-theme .name_last  label {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: #4A0E0E !important;
    font-weight: 600 !important;
    font-size: 0.82rem !important;
    text-transform: none !important;
    letter-spacing: 0 !important;
}

/* ── Section headings inside form ─────────────────────────────── */
html body .gform-theme h2,
html body .gform-theme h3,
html body .gform-theme .gsection_title {
    font-family: 'IM Fell English SC', 'Cinzel', Georgia, serif !important;
    color: #6B1414 !important;
    letter-spacing: 0.06em !important;
}

/* Section divider line */
html body .gform-theme .gsection_description {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: #4A0E0E !important;
    font-size: 1.05rem !important;
}

/* ── Validation / error states ────────────────────────────────── */
html body .gform-theme .gfield_error input,
html body .gform-theme .gfield_error textarea,
html body .gform-theme .gfield_error select {
    border-color: #C0392B !important;
    background: #FDF3F3 !important;
}

html body .gform-theme .validation_message,
html body .gform-theme .gfield_error .gfield_label {
    color: #C0392B !important;
    font-family: 'Cormorant Garamond', Georgia, serif !important;
}

html body .gform-theme .gform_validation_errors,
html body .gform-theme .validation_error {
    background: rgba(192,57,43,0.06) !important;
    border-color: #C0392B !important;
    color: #C0392B !important;
}

/* ── Confirmation / success message ───────────────────────────── */
html body .gform_confirmation_message,
html body .gforms_confirmation_message {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: #4A0E0E !important;
    font-size: 1.15rem !important;
    background: rgba(201,169,97,0.12) !important;
    border-left: 4px solid #C9A961 !important;
    padding: 18px 24px !important;
    border-radius: 0 4px 4px 0 !important;
}

/* ── Progress bar (multi-page forms) ─────────────────────────── */
html body .gform-theme .gf_progressbar_percentage {
    background: linear-gradient(90deg, #6B1414 0%, #C9A961 100%) !important;
}

html body .gform-theme .gf_progressbar {
    background: rgba(201,169,97,0.18) !important;
    border-radius: 4px !important;
    overflow: hidden !important;
}

html body .gform-theme .gf_step_active {
    color: #6B1414 !important;
    font-family: 'Cinzel', Georgia, serif !important;
}

/* ── Checkbox and radio inputs ────────────────────────────────── */
html body .gform-theme input[type="checkbox"],
html body .gform-theme input[type="radio"] {
    accent-color: #6B1414 !important;
}

html body .gform-theme .gchoice label {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: #2A1810 !important;
    font-size: 1.05rem !important;
}

/* =================================================================
   DragonBridge v1.4.13 — Footer: widgets replace page-link list
   The footer bar (#colophon.footer-credits) now renders the
   dragonbridge-footer-area widget sidebar instead of wp_list_pages().
   Re-apply the burgundy/gold widget styling (previously on the now-
   defunct #content-footer-section) to the colophon element.
   ================================================================= */

/* ── Footer bar — match the old widget-section burgundy treatment ── */
#colophon.footer-credits {
    background-color: var(--db-burgundy-deep) !important;
    background-image: linear-gradient(180deg, var(--db-burgundy) 0%, var(--db-burgundy-deep) 100%) !important;
    padding: 0 !important;
    position: relative !important;
}

/* Gold top border line */
#colophon.footer-credits::before {
    content: "" !important;
    display: block !important;
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    right: 0 !important;
    height: 3px !important;
    background: linear-gradient(90deg, transparent, #C9A961, transparent) !important;
    opacity: 0.85 !important;
}

/* Inner widget wrapper — generous padding */
#colophon.footer-credits .footer-widgets-inner {
    padding: 40px 0 32px !important;
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 32px !important;
    justify-content: space-between !important;
    align-items: flex-start !important;
}

/* Each widget inside the footer */
#colophon.footer-credits .widget {
    flex: 1 1 220px !important;
    max-width: 320px !important;
    background: transparent !important;
    border: none !important;
    box-shadow: none !important;
    padding: 0 !important;
    color: rgba(245,235,214,0.85) !important;
}

/* Widget titles */
#colophon.footer-credits .widget-title h3,
#colophon.footer-credits .widget-title,
#colophon.footer-credits .widgettitle {
    font-family: 'Cinzel', Georgia, serif !important;
    color: #E5C46A !important;
    font-size: 0.82rem !important;
    letter-spacing: 0.18em !important;
    text-transform: uppercase !important;
    border-bottom: 1px solid rgba(201,169,97,0.4) !important;
    padding-bottom: 10px !important;
    margin-bottom: 16px !important;
}

/* Widget body text */
#colophon.footer-credits .widget p,
#colophon.footer-credits .widget li,
#colophon.footer-credits .widget span {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    color: rgba(245,235,214,0.85) !important;
    font-size: 1rem !important;
    line-height: 1.65 !important;
}

/* Widget links */
#colophon.footer-credits .widget a {
    color: #E5C46A !important;
    text-decoration: none !important;
    border-bottom: 1px dotted rgba(201,169,97,0.45) !important;
    transition: color 0.18s ease, border-color 0.18s ease !important;
}

#colophon.footer-credits .widget a:hover {
    color: #FAF4E4 !important;
    border-bottom-color: #FAF4E4 !important;
}

/* Widget lists (nav menus, recent posts, etc.) */
#colophon.footer-credits .widget ul {
    list-style: none !important;
    margin: 0 !important;
    padding: 0 !important;
}

#colophon.footer-credits .widget ul li {
    padding: 6px 0 !important;
    border-bottom: 1px solid rgba(201,169,97,0.12) !important;
}

#colophon.footer-credits .widget ul li:last-child {
    border-bottom: none !important;
}

/* Text widget — no margin on last paragraph */
#colophon.footer-credits .widget .textwidget p:last-child {
    margin-bottom: 0 !important;
}

/* When no widgets are configured — hide the footer entirely */
#colophon.footer-credits:not(:has(.footer-widgets-inner)) {
    display: none !important;
}

/* ── Responsive: stack widgets on mobile ───────────────────────── */
@media (max-width: 767px) {
    #colophon.footer-credits .footer-widgets-inner {
        flex-direction: column !important;
        padding: 28px 16px 24px !important;
    }

    #colophon.footer-credits .widget {
        max-width: 100% !important;
        width: 100% !important;
    }
}

/* =================================================================
   DragonBridge v1.4.16 — MOBILE OPTIMIZATION
   =================================================================
   Verified against the live site at a 390px emulated viewport.

   Root causes fixed here:
     1. HORIZONTAL OVERFLOW — the hero used `margin: 0 -16px;
        width: calc(100% + 32px)` (and `100vw` for singular/home
        headings) to break out of container padding. On the home
        template its parent has no padding, so it overflowed the
        viewport by 16px. `100vw` also includes the scrollbar gutter.
     2. CONTENT CRUSH — `.home-page-content` kept its desktop
        `padding: 70px 80px` on mobile. At 390px that left 133px of
        usable text width, so headings broke mid-word
        ("Disc/over the Magi/c"). The nested padding chain
        (32 container + 30 column + 64 card) cost 126px of 390px.
     3. NO SMALL BREAKPOINT — the smallest query in the theme was
        560px, so a 320px phone inherited tablet CSS wholesale.
        This block adds 600 / 480 / 380px tiers.
     4. TAP TARGETS — the nav trigger was 20-24px inside a 34px
        capped parent (48px toggle overflowing it). Now >= 44px.
     5. Elementor fractional columns on WooCommerce pages had no
        mobile query at all (a 33% column = 96px at 320px).

   Everything below is inside a max-width query — desktop is
   untouched.
   ================================================================= */

/* ── 0. Global overflow safety net ──────────────────────────────
   `html` had overflow-x:hidden but `body` had no counterpart. */
html,
body {
    max-width: 100% !important;
    overflow-x: hidden !important;
}

/* Media and embeds must never exceed their box. The tickets page
   embeds a third-party ticketing widget in an iframe. */
img,
iframe,
embed,
object,
video,
canvas,
svg:not(.db-inline-icon) {
    max-width: 100% !important;
}

/* Long unbroken strings (URLs, order numbers, code) must wrap.
   Lines 715/719 explicitly disabled wrapping with
   `overflow-wrap: unset` / `word-break: keep-all`. */
p,
li,
dd,
dt,
td,
th,
code,
.entry-content,
.single-entry-summary,
.wc-block-components-product-name {
    overflow-wrap: break-word;
    word-break: normal;
}

/* =============================================================
   TIER 1 — <= 768px  (phones and small tablets)
   ============================================================= */
@media (max-width: 768px) {

    /* ── 1.1 Kill every hero breakout. ─────────────────────────
       Supersedes the -16px/-32px negative-margin rules (8532,
       8559) AND the unconditional 100vw rule (9261) which sat
       later in the file and won even on mobile. */
    html body .top-header,
    html body .top-header.singular-heading,
    html body .top-header.home-heading,
    html body .top-header.home-large-hero,
    html body.dragonbridge-large-hero .top-header,
    html body.dragonbridge-large-hero .top-header.home-large-hero,
    html body.dragonbridge-large-hero .top-header.singular-heading,
    html body.dragonbridge-large-hero .top-header.home-heading,
    html body .single-image,
    html body .bg-single-image {
        margin-left: 0 !important;
        margin-right: 0 !important;
        width: 100% !important;
        max-width: 100% !important;
        left: auto !important;
        right: auto !important;
    }

    /* Give the home banner a usable height. `aspect-ratio:
       2172/724` alone rendered it 107px tall at 320px. */
    html body .top-header.home-large-hero,
    html body.dragonbridge-large-hero .top-header.home-large-hero {
        aspect-ratio: auto !important;
        min-height: 150px !important;
        max-height: 260px !important;
    }

    html body .top-header.home-large-hero img,
    html body .top-header.home-large-hero .single-image,
    html body .top-header.home-large-hero .bg-single-image,
    html body.dragonbridge-large-hero .top-header.home-large-hero img,
    html body.dragonbridge-large-hero .top-header.home-large-hero .single-image,
    html body.dragonbridge-large-hero .top-header.home-large-hero .bg-single-image {
        object-fit: cover !important;
        object-position: center !important;
        height: 100% !important;
    }

    /* ── 1.2 Recover the padding chain ─────────────────────────
       Was 32 + 30 + 64 + 3 = 129px of 390px (33% lost). */
    html body .main-container,
    html body #site-content.main-container,
    html body .container.main-container {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    html body article.col-md-12,
    html body .row.single-page > .col-md-12 {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    html body .hentry,
    html body article.content-article,
    html body .post.hentry,
    html body .page.hentry,
    html body .col-md-12 > article {
        padding-left: 20px !important;
        padding-right: 20px !important;
    }

    /* WooCommerce containers had padding forced to 0 (line 7800),
       so cart/checkout touched both screen edges. Restore a gutter. */
    html body.woocommerce-cart .main-container,
    html body.woocommerce-checkout .main-container,
    html body.woocommerce-account .main-container,
    html body.woocommerce .main-container {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    /* ── 1.3 Home page heraldic frame ──────────────────────────
       `padding: 70px 80px` (line 6075) was the single biggest
       content-width thief. Narrow the laurel vines to match. */
    body.dragonbridge-large-hero .home-page-content {
        padding: 40px 30px !important;
        margin: 18px auto !important;
        background-size: 22px 200px, 22px 200px, 240px 288px, auto !important;
    }

    /* Corner ornaments are 56px — too large for the smaller frame. */
    body.dragonbridge-large-hero .home-page-content:before,
    body.dragonbridge-large-hero .home-page-content:after {
        width: 34px !important;
        height: 34px !important;
    }

    /* ── 1.4 Typography ────────────────────────────────────────
       The theme's mobile type block (line 2811) is dead code — it
       sits before the unconditional clamps at 3361 and loses the
       cascade. These rules are placed last so they actually win. */
    html body h1,
    html body .single-title,
    html body h1.single-title {
        font-size: clamp(1.5rem, 6vw, 2.1rem) !important;
        line-height: 1.2 !important;
        letter-spacing: 0.03em !important;
    }

    html body h2 {
        font-size: clamp(1.3rem, 5vw, 1.7rem) !important;
        line-height: 1.25 !important;
        letter-spacing: 0.02em !important;
    }

    html body h3 {
        font-size: clamp(1.15rem, 4.2vw, 1.4rem) !important;
        line-height: 1.3 !important;
    }

    html body h4 { font-size: 1.15rem !important; }
    html body h5 { font-size: 1.05rem !important; }
    html body h6 { font-size: 0.95rem !important; }

    /* Elementor headings carry their own desktop sizes inline-ish
       (48px was rendering inside a 133px column). */
    html body .elementor-heading-title {
        font-size: clamp(1.3rem, 5.5vw, 2rem) !important;
        line-height: 1.25 !important;
        word-break: normal !important;
        overflow-wrap: break-word !important;
        hyphens: auto !important;
    }

    /* Body copy: 19.1px base is oversized on a phone. */
    html body,
    html body p,
    html body li,
    html body .entry-content,
    html body .single-entry-summary,
    html body .home-page-content,
    html body .home-page-content p,
    html body .home-page-content li {
        font-size: 1rem !important;
        line-height: 1.6 !important;
    }

    /* ── 1.5 Header, nav trigger, tap targets ──────────────────
       The trigger was 20px (line 1558) / 24px (1627) inside a
       34px-capped parent (645) holding a 48px toggle (3657).
       WCAG minimum is 44px. */
    html body .header-right,
    html body .header-right.menu-button {
        min-width: 0 !important;
        max-width: none !important;
    }

    html body .menu-button,
    html body .menu-button .toggle.menu-panel,
    html body .hc-nav-trigger {
        width: 44px !important;
        height: 44px !important;
        min-width: 44px !important;
        min-height: 44px !important;
        max-width: none !important;
        display: inline-flex !important;
        align-items: center !important;
        justify-content: center !important;
        padding: 0 !important;
    }

    html body .hc-nav-trigger span,
    html body .hc-nav-trigger span:before,
    html body .hc-nav-trigger span:after {
        width: 24px !important;
        height: 2px !important;
    }

    /* The -50px brand pull (line 1660) shoved the logo under the
       nav controls. */
    html body .navbar-default .navbar-brand {
        margin-right: 0 !important;
    }

    html body .site-heading {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    /* Dropdown submenus were pinned to 220px with nowrap
       (lines 7209 / 7240) — unusable at 320px. */
    html body .dropdown-menu,
    html body .menu-container ul ul,
    html body .sub-menu {
        min-width: 0 !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    html body .sub-menu a,
    html body .menu-container ul ul a,
    html body .dropdown-menu a {
        white-space: normal !important;
        min-width: 0 !important;
        padding: 12px 16px !important;
    }

    html body li.menu-item-has-children a.envo-categories-menu-first {
        min-width: 0 !important;
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    /* Off-canvas panel: cap width so it never exceeds the screen. */
    html body .hc-offcanvas-nav .nav-container {
        max-width: 86vw !important;
    }

    /* Off-canvas links need real tap height. */
    html body .hc-offcanvas-nav ul li a {
        min-height: 48px !important;
        display: flex !important;
        align-items: center !important;
    }

    /* ── 1.6 Hero title box ────────────────────────────────────
       `padding: 0 32px` inside a 94%-wide box left 236px for a
       Cinzel serif h1. */
    html body .header-title {
        width: 100% !important;
        max-width: 100% !important;
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    html body .top-header .single-title,
    html body .top-header .header-site-title {
        padding-left: 0 !important;
        padding-right: 0 !important;
    }

    /* 240px dragon watermark inside a ~300px title box. */
    html body .header-title:before,
    html body .header-title:after {
        display: none !important;
    }

    /* ── 1.7 Elementor columns on WooCommerce pages ────────────
       Lines 8678-8697 hard-coded 50/33/66% with NO mobile query. */
    html body.woocommerce-cart .elementor-column,
    html body.woocommerce-checkout .elementor-column,
    html body.woocommerce-account .elementor-column,
    html body.woocommerce .elementor-column,
    html body.woocommerce-cart .elementor-col-50,
    html body.woocommerce-checkout .elementor-col-50,
    html body.woocommerce-account .elementor-col-50,
    html body.woocommerce .elementor-col-50,
    html body.woocommerce-cart .elementor-col-33,
    html body.woocommerce-checkout .elementor-col-33,
    html body.woocommerce-account .elementor-col-33,
    html body.woocommerce .elementor-col-33,
    html body.woocommerce-cart .elementor-col-66,
    html body.woocommerce-checkout .elementor-col-66,
    html body.woocommerce-account .elementor-col-66,
    html body.woocommerce .elementor-col-66 {
        flex: 0 0 100% !important;
        max-width: 100% !important;
        width: 100% !important;
    }

    /* ── 1.8 Forms — prevent iOS zoom-on-focus ─────────────────
       Any input under 16px makes Safari zoom the viewport. */
    html body input:not([type="checkbox"]):not([type="radio"]),
    html body textarea,
    html body select,
    html body .gform-theme input,
    html body .gform-theme textarea,
    html body .gform-theme select,
    html body .wc-block-components-text-input input {
        font-size: 16px !important;
        max-width: 100% !important;
    }

    /* Full-width form controls and buttons on mobile. */
    html body .gform-theme .gfield,
    html body .gform-theme .ginput_container,
    html body .gform-theme input:not([type="submit"]):not([type="button"]):not([type="checkbox"]):not([type="radio"]),
    html body .gform-theme textarea,
    html body .gform-theme select {
        width: 100% !important;
    }

    html body .gform_button,
    html body .gform-theme-button {
        width: 100% !important;
        padding: 14px 18px !important;
        letter-spacing: 0.06em !important;
    }

    /* Multi-column GF fields stack. */
    html body .gform-theme .gform_fields {
        grid-template-columns: 1fr !important;
    }

    /* ── 1.9 Tables ────────────────────────────────────────────
       The theme's wrappers set `overflow: hidden`, so anything
       too wide was destroyed rather than scrollable. */
    html body .wc-product-table-wrapper,
    html body .woocommerce table.shop_table,
    html body .table-responsive {
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
    }

    /* Generic editor tables get a scroll container instead of
       silently clipping. */
    html body .entry-content > table,
    html body .single-entry-summary > table,
    html body table.shop_attributes,
    html body table.woocommerce-orders-table,
    html body table.woocommerce-table--order-details,
    html body table.woocommerce-table--order-downloads {
        display: block !important;
        width: 100% !important;
        overflow-x: auto !important;
        -webkit-overflow-scrolling: touch !important;
        white-space: normal !important;
    }

    /* ── 1.10 WooCommerce product & shop ───────────────────────
       `div.product` padding 32px left ~220px of content at 320px. */
    html body .woocommerce div.product {
        padding: 16px !important;
    }

    /* Single product: stack gallery above summary (the theme had
       no rule here at all — it relied entirely on Woo core). */
    html body .woocommerce div.product .woocommerce-product-gallery,
    html body .woocommerce div.product .summary,
    html body .woocommerce div.product div.images,
    html body .woocommerce div.product div.summary {
        float: none !important;
        width: 100% !important;
        max-width: 100% !important;
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    html body .woocommerce div.product .summary {
        margin-top: 22px !important;
    }

    /* Fixed 220px card image crop is disproportionate at 1 column. */
    html body .woocommerce ul.products li.product img {
        height: auto !important;
        aspect-ratio: 4 / 3 !important;
        object-fit: cover !important;
    }

    /* Add-to-cart: 72px of horizontal padding (line 8029). */
    html body .single_add_to_cart_button,
    html body .woocommerce a.button,
    html body .woocommerce button.button {
        padding: 14px 18px !important;
        letter-spacing: 0.06em !important;
        white-space: normal !important;
        min-height: 44px !important;
    }

    /* The Buy cell was ~361px of unbreakable content. */
    html body td.col-buy,
    html body td.col-add-to-cart,
    html body .wc-product-table td.col-buy {
        white-space: normal !important;
    }

    html body .quantity {
        margin-right: 0 !important;
        margin-bottom: 8px !important;
    }

    html body input.qty {
        width: 52px !important;
        min-width: 52px !important;
        max-width: 52px !important;
        height: 44px !important;
        font-size: 16px !important;
    }

    html body .quantity .plus,
    html body .quantity .minus {
        width: 44px !important;
        min-width: 44px !important;
        height: 44px !important;
    }

    /* ── 1.11 Block cart / checkout ────────────────────────────
       The image column is hidden (9341) but the ≤600px grid still
       reserved a 100px track for it, cramming product names. */
    html body.woocommerce-cart .wc-block-cart-items__row {
        grid-template-columns: 1fr auto !important;
    }

    html body.woocommerce-cart .wc-block-cart__sidebar,
    html body.woocommerce-checkout .wc-block-checkout__sidebar {
        padding: 16px !important;
    }

    html body .wc-block-components-quantity-selector {
        min-width: 120px !important;
        max-width: 140px !important;
    }

    /* ── 1.12 Footer ───────────────────────────────────────────*/
    #colophon.footer-credits .footer-widgets-inner {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }
}

/* =============================================================
   TIER 2 — <= 600px  (large phones)
   ============================================================= */
@media (max-width: 600px) {

    html body .main-container,
    html body #site-content.main-container,
    html body .container.main-container {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    html body .hentry,
    html body article.content-article,
    html body .post.hentry,
    html body .page.hentry,
    html body .col-md-12 > article {
        padding-left: 16px !important;
        padding-right: 16px !important;
    }

    body.dragonbridge-large-hero .home-page-content {
        padding: 32px 22px !important;
        background-size: 16px 200px, 16px 200px, 200px 240px, auto !important;
    }

    /* Decorative card bleed of -40px (line 6011) has no mobile
       counterpart and pushes past the narrowed padding. */
    body.dragonbridge-large-hero .home-page-content > h1,
    body.dragonbridge-large-hero .home-page-content > h2,
    body.dragonbridge-large-hero .home-page-content > .wp-block-heading {
        margin-left: 0 !important;
        margin-right: 0 !important;
    }

    /* Blockquote decorative glyph is 76px. */
    html body blockquote {
        padding-left: 18px !important;
        padding-right: 14px !important;
    }

    html body blockquote:before {
        font-size: 2.6rem !important;
        left: 4px !important;
    }
}

/* =============================================================
   TIER 3 — <= 480px  (the theme had NO breakpoint below 560px)
   ============================================================= */
@media (max-width: 480px) {

    html body .main-container,
    html body #site-content.main-container,
    html body .container.main-container {
        padding-left: 10px !important;
        padding-right: 10px !important;
    }

    html body article.col-md-12,
    html body .row.single-page > .col-md-12 {
        padding-left: 6px !important;
        padding-right: 6px !important;
    }

    html body .hentry,
    html body article.content-article,
    html body .post.hentry,
    html body .page.hentry,
    html body .col-md-12 > article {
        padding-left: 14px !important;
        padding-right: 14px !important;
    }

    /* Drop the laurel vines entirely — below 480px the frame costs
       more width than the ornament is worth. */
    body.dragonbridge-large-hero .home-page-content {
        padding: 26px 16px !important;
        background-image: linear-gradient(180deg, #FAF4E4 0%, #EFE2C4 100%) !important;
        background-size: auto !important;
        background-repeat: no-repeat !important;
    }

    body.dragonbridge-large-hero .home-page-content:before,
    body.dragonbridge-large-hero .home-page-content:after {
        display: none !important;
    }

    /* Tighten the heaviest heading tracking — uppercase Cinzel at
       0.18em overflows narrow boxes. */
    html body .widget-title h3,
    html body #colophon.footer-credits .widget-title h3,
    html body .wc-block-cart-items__header th,
    html body .wc-block-components-panel__button {
        letter-spacing: 0.08em !important;
    }

    /* Logo: cap so the header row never wraps. */
    html body .navbar-brand img,
    html body .site-heading img,
    html body .custom-logo {
        max-height: 46px !important;
        max-width: 140px !important;
        width: auto !important;
    }

    /* Mini cart pill: icon + badge only. */
    html body .header-cart .cart-contents {
        padding: 8px 10px !important;
    }

    html body .header-cart .cart-contents .amount-cart {
        display: none !important;
    }

    /* Cart line items stack fully. */
    html body.woocommerce-cart .wc-block-cart-items__row {
        grid-template-columns: 1fr !important;
        gap: 8px !important;
    }

    html body.woocommerce-cart .wc-block-cart-item__total {
        grid-column: 1 / -1 !important;
        text-align: left !important;
    }

    /* Buttons: full width, no orphaned words. */
    html body .single_add_to_cart_button,
    html body .woocommerce a.button,
    html body .woocommerce button.button,
    html body .wc-block-cart__submit-button,
    html body .wc-block-components-checkout-place-order-button {
        width: 100% !important;
        font-size: 0.85rem !important;
        padding: 14px 12px !important;
        letter-spacing: 0.05em !important;
    }

    /* Shop grid gap reduction (vertical rhythm at 1 column). */
    html body .woocommerce ul.products {
        gap: 18px !important;
    }
}

/* =============================================================
   TIER 4 — <= 380px  (iPhone SE / Galaxy S-mini class)
   ============================================================= */
@media (max-width: 380px) {

    html body .main-container,
    html body #site-content.main-container,
    html body .container.main-container {
        padding-left: 8px !important;
        padding-right: 8px !important;
    }

    html body .hentry,
    html body article.content-article,
    html body .post.hentry,
    html body .page.hentry,
    html body .col-md-12 > article {
        padding-left: 12px !important;
        padding-right: 12px !important;
    }

    body.dragonbridge-large-hero .home-page-content {
        padding: 22px 12px !important;
    }

    html body h1,
    html body .single-title,
    html body h1.single-title {
        font-size: 1.45rem !important;
    }

    html body h2,
    html body .elementor-heading-title {
        font-size: 1.25rem !important;
    }

    html body .navbar-brand img,
    html body .site-heading img,
    html body .custom-logo {
        max-height: 40px !important;
        max-width: 118px !important;
    }

    /* Quantity selector must still fit beside a Remove link. */
    html body .wc-block-components-quantity-selector {
        min-width: 108px !important;
        max-width: 120px !important;
    }

    html body .wc-block-components-quantity-selector__button,
    html body button.wc-block-components-quantity-selector__button {
        flex: 0 0 32px !important;
        width: 32px !important;
        min-width: 32px !important;
        max-width: 32px !important;
    }
}

/* =============================================================
   TOUCH DEVICES — remove hover-only affordances
   ============================================================= */
@media (hover: none) {
    html body .gform_button:hover,
    html body .gform-theme-button:hover,
    html body .wc-block-cart__submit-button:hover,
    html body .wc-block-components-checkout-place-order-button:hover,
    html body .header-cart .cart-contents:hover,
    html body .woocommerce a.button:hover,
    html body .woocommerce button.button:hover {
        transform: none !important;
    }
}


/* =================================================================
   DragonBridge v1.4.19 — DIRECTORIES
   Vendors / Entertainment / Sponsors card grid + detail pages.
   Mobile-first sizing consistent with the v1.4.16 breakpoint tiers
   (768 / 600 / 480 / 380).
   ================================================================= */

/* ── Archive header ─────────────────────────────────────────────── */
html body .directory-header {
    padding: 8px 0 22px;
    text-align: center;
}

html body .directory-title {
    font-family: 'Cinzel', Georgia, serif;
    color: #6B1414;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    margin: 0 0 10px;
}

html body .directory-description {
    font-family: 'Cormorant Garamond', Georgia, serif;
    color: #3A2A2A;
    font-size: 1.1rem;
    max-width: 62ch;
    margin: 0 auto;
}

html body .directory-rule {
    display: block;
    margin: 16px auto 0;
    color: #C9A961;
    font-size: 1.2rem;
    letter-spacing: 0.4em;
}

/* ── Filter bar ─────────────────────────────────────────────────── */
html body .directory-filters {
    display: flex;
    flex-wrap: wrap;
    justify-content: center;
    gap: 8px;
    margin: 0 0 30px;
    padding: 0 0 22px;
    border-bottom: 1px solid rgba(201, 169, 97, 0.35);
}

html body .directory-filter {
    display: inline-flex;
    align-items: center;
    gap: 6px;
    padding: 8px 16px;
    border: 1px solid rgba(201, 169, 97, 0.55);
    border-radius: 999px;
    background: #FAF4E4;
    color: #6B1414;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.74rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease, border-color 0.18s ease;
}

html body .directory-filter:hover,
html body .directory-filter:focus {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%);
    color: #4A0E0E;
    border-color: #6B1414;
    text-decoration: none;
}

html body .directory-filter.is-active {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%);
    border-color: #C9A961;
    color: #E5C46A;
}

html body .directory-filter-count {
    font-size: 0.68rem;
    opacity: 0.75;
}

/* ── Card grid ──────────────────────────────────────────────────── */
html body .directory-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
    gap: 26px;
    margin: 0 0 36px;
}

html body .directory-card {
    display: flex;
    flex-direction: column;
    background: #FAF4E4;
    border: 1px solid rgba(201, 169, 97, 0.55);
    border-top: 4px solid #6B1414;
    border-radius: 4px;
    overflow: hidden;
    box-shadow: 0 2px 10px rgba(74, 14, 14, 0.08);
    transition: transform 0.18s ease, box-shadow 0.18s ease;
}

html body .directory-card:hover {
    transform: translateY(-3px);
    box-shadow: 0 8px 20px rgba(74, 14, 14, 0.16);
}

html body .directory-card.is-featured {
    border-top-color: #C9A961;
    box-shadow: 0 0 0 1px rgba(201, 169, 97, 0.5), 0 4px 14px rgba(74, 14, 14, 0.14);
}

html body .directory-card-media {
    position: relative;
    display: block;
    aspect-ratio: 3 / 2;
    background: rgba(74, 14, 14, 0.06);
    overflow: hidden;
}

html body .directory-card-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

html body .directory-card-placeholder {
    position: absolute;
    top: 50%;
    left: 50%;
    transform: translate(-50%, -50%);
    color: rgba(201, 169, 97, 0.7);
    font-size: 2.4rem;
}

html body .directory-card-flag {
    position: absolute;
    top: 10px;
    left: 10px;
    padding: 4px 10px;
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%);
    color: #4A0E0E;
    border-radius: 999px;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.62rem;
    font-weight: 700;
    letter-spacing: 0.12em;
    text-transform: uppercase;
}

html body .directory-card-body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    padding: 18px 18px 16px;
}

html body .directory-card-title {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.3;
    margin: 0 0 6px;
}

html body .directory-card-title a {
    color: #4A0E0E;
    text-decoration: none;
}

html body .directory-card-title a:hover {
    color: #6B1414;
    text-decoration: underline;
}

html body .directory-card-terms {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #9D844C;
    margin: 0 0 10px;
}

html body .directory-card-excerpt {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1rem;
    line-height: 1.55;
    color: #3A2A2A;
    margin: 0 0 14px;
}

html body .directory-card-actions {
    display: flex;
    flex-wrap: wrap;
    gap: 8px;
    margin: auto 0 0;
}

html body .directory-card-link,
html body .directory-card-site {
    display: inline-block;
    padding: 8px 14px;
    border-radius: 3px;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.7rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    text-decoration: none;
    transition: background 0.18s ease, color 0.18s ease;
}

html body .directory-card-link {
    background: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%);
    border: 1px solid #C9A961;
    color: #E5C46A;
}

html body .directory-card-link:hover {
    background: linear-gradient(180deg, #C9A961 0%, #A88840 100%);
    color: #4A0E0E;
    text-decoration: none;
}

html body .directory-card-site {
    background: transparent;
    border: 1px solid rgba(201, 169, 97, 0.7);
    color: #6B1414;
}

html body .directory-card-site:hover {
    background: rgba(201, 169, 97, 0.18);
    text-decoration: none;
}

html body .directory-empty {
    text-align: center;
    padding: 50px 20px;
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.15rem;
    color: #6B1414;
}

/* ── Detail page ────────────────────────────────────────────────── */
html body .directory-detail-header {
    text-align: center;
    padding: 6px 0 26px;
    border-bottom: 1px solid rgba(201, 169, 97, 0.35);
    margin-bottom: 28px;
}

html body .directory-detail-logo {
    max-height: 110px;
    width: auto;
    margin: 0 auto 16px;
    display: block;
}

html body .directory-detail-title {
    font-family: 'Cinzel', Georgia, serif;
    color: #6B1414;
    letter-spacing: 0.06em;
    margin: 0 0 12px;
}

html body .directory-term-badge {
    display: inline-block;
    margin: 0 4px 4px 0;
    padding: 5px 13px;
    background: rgba(74, 14, 14, 0.07);
    border: 1px solid rgba(201, 169, 97, 0.5);
    border-radius: 999px;
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.66rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #6B1414;
    text-decoration: none;
}

html body .directory-term-badge:hover {
    background: rgba(201, 169, 97, 0.25);
    text-decoration: none;
}

html body .directory-detail-grid {
    display: grid;
    grid-template-columns: minmax(0, 1.9fr) minmax(250px, 1fr);
    gap: 38px;
    align-items: start;
}

html body .directory-detail-body {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.1rem;
    line-height: 1.7;
    color: #2A1810;
}

html body .directory-detail-subhead {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 1rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #4A0E0E;
    border-bottom: 1px solid rgba(201, 169, 97, 0.4);
    padding-bottom: 8px;
    margin: 26px 0 14px;
}

html body .directory-detail-video {
    margin: 24px 0;
}

html body .directory-detail-video iframe {
    width: 100%;
    aspect-ratio: 16 / 9;
    height: auto;
    border: 1px solid rgba(201, 169, 97, 0.5);
    border-radius: 4px;
}

html body .directory-times {
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1.05rem;
    line-height: 1.8;
    color: #2A1810;
}

html body .directory-stage {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.8rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #9D844C;
    margin: 0 0 8px;
}

html body .directory-detail-photos {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
    gap: 14px;
    margin: 28px 0 0;
}

html body .directory-photo {
    margin: 0;
}

html body .directory-photo-img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    aspect-ratio: 4 / 3;
    border: 1px solid rgba(201, 169, 97, 0.45);
    border-radius: 4px;
    display: block;
}

/* Info boxes */
html body .directory-infobox {
    background: rgba(74, 14, 14, 0.04);
    border: 1px solid rgba(201, 169, 97, 0.4);
    border-radius: 6px;
    padding: 20px 22px;
    margin: 0 0 20px;
}

html body .directory-infobox-title {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.85rem;
    letter-spacing: 0.14em;
    text-transform: uppercase;
    color: #4A0E0E;
    border-bottom: 1px solid rgba(201, 169, 97, 0.4);
    padding-bottom: 10px;
    margin: 0 0 14px;
}

html body .directory-infolist {
    list-style: none;
    margin: 0;
    padding: 0;
}

html body .directory-infolist li {
    display: flex;
    flex-direction: column;
    gap: 2px;
    padding: 9px 0;
    border-bottom: 1px solid rgba(201, 169, 97, 0.18);
    font-family: 'Cormorant Garamond', Georgia, serif;
    font-size: 1rem;
    color: #2A1810;
    word-break: break-word;
}

html body .directory-infolist li:last-child {
    border-bottom: none;
}

html body .directory-info-label {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.64rem;
    letter-spacing: 0.12em;
    text-transform: uppercase;
    color: #9D844C;
}

html body .directory-infolist a {
    color: #6B1414;
    text-decoration: underline;
}

html body .directory-back a {
    font-family: 'Cinzel', Georgia, serif;
    font-size: 0.74rem;
    letter-spacing: 0.1em;
    text-transform: uppercase;
    color: #6B1414;
    text-decoration: none;
}

html body .directory-back a:hover {
    text-decoration: underline;
}

/* ── Responsive ─────────────────────────────────────────────────── */
@media (max-width: 900px) {
    html body .directory-detail-grid {
        grid-template-columns: 1fr;
        gap: 26px;
    }
}

@media (max-width: 768px) {
    html body .directory-grid {
        grid-template-columns: repeat(auto-fill, minmax(215px, 1fr));
        gap: 18px;
    }

    html body .directory-filters {
        gap: 6px;
        margin-bottom: 22px;
        padding-bottom: 16px;
    }

    html body .directory-filter {
        padding: 7px 12px;
        font-size: 0.68rem;
        letter-spacing: 0.06em;
    }

    html body .directory-detail-photos {
        grid-template-columns: repeat(auto-fill, minmax(150px, 1fr));
    }
}

@media (max-width: 480px) {
    html body .directory-grid {
        grid-template-columns: 1fr;
        gap: 16px;
    }

    html body .directory-card-body {
        padding: 15px 15px 14px;
    }

    html body .directory-detail-photos {
        grid-template-columns: 1fr 1fr;
        gap: 10px;
    }

    html body .directory-infobox {
        padding: 16px 16px;
    }

    html body .directory-card-actions {
        flex-direction: column;
    }

    html body .directory-card-link,
    html body .directory-card-site {
        text-align: center;
    }
}

@media (hover: none) {
    html body .directory-card:hover {
        transform: none;
    }
}

/* =================================================================
   DragonBridge v1.4.21 — DIRECTORY LAYOUT & BUTTON FIXES
   =================================================================
   Verified against the live /vendors/ archive.

   The v1.4.19 directory rules were written without !important, so
   three earlier layers out-ranked them:

     1. BUTTON TEXT WAS INVISIBLE. The theme's link colour resolved
        .directory-card-link to rgb(107,20,20) — burgundy text on a
        burgundy gradient. Both `color` and `-webkit-text-fill-color`
        now have to be forced; Safari/iOS honours the latter only.

     2. CARD TITLES BROKE MID-WORD ("Apothe cary Airmed"). The
        v1.4.16 mobile block sets `html body h2 { font-size:
        clamp(1.3rem,5vw,1.7rem) !important }`. An !important
        declaration always beats a non-important one regardless of
        source order, so the cards rendered 28.9px type inside a
        137px column.

     3. CARDS INHERITED ARTICLE CHROME. post_class() puts `hentry` on
        each card, which pulls in the theme's parchment texture,
        32px padding and 5.6px top border, plus the decorative
        "⸻ ⚜ ⸻" ::after on every heading.

   Everything here is scoped to .directory-* so no other template is
   affected.
   ================================================================= */

/* ── 1. Strip inherited article chrome from cards ───────────────── */
html body .directory-grid .directory-card,
html body article.directory-card,
html body .directory-card.hentry {
    padding: 0 !important;
    margin: 0 !important;
    background-image: none !important;
    background-color: #FAF4E4 !important;
    border: 1px solid rgba(201, 169, 97, 0.55) !important;
    border-top: 4px solid #6B1414 !important;
    border-radius: 4px !important;
    overflow: hidden !important;
    box-shadow: 0 2px 10px rgba(74, 14, 14, 0.08) !important;
}

html body .directory-card.is-featured {
    border-top-color: #C9A961 !important;
}

/* Theme corner ornaments / pennants must not render inside a card. */
html body .directory-card::before,
html body .directory-card::after,
html body .directory-card .directory-card-title::after,
html body .directory-card .directory-card-title::before,
html body .directory-card h2::after,
html body .directory-card h2::before {
    content: none !important;
    display: none !important;
}

/* ── 2. Card typography ─────────────────────────────────────────── */
html body .directory-card .directory-card-body {
    padding: 16px 16px 14px !important;
}

html body .directory-card .directory-card-title,
html body .directory-card h2.directory-card-title {
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 1.02rem !important;
    line-height: 1.28 !important;
    letter-spacing: 0.02em !important;
    margin: 0 0 6px !important;
    padding: 0 !important;
    text-transform: none !important;
    /* Long single words shrink rather than snapping mid-syllable. */
    word-break: normal !important;
    overflow-wrap: break-word !important;
    hyphens: auto !important;
    text-align: left !important;
}

html body .directory-card .directory-card-title a {
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    font-size: inherit !important;
    line-height: inherit !important;
    text-decoration: none !important;
    border-bottom: none !important;
}

html body .directory-card .directory-card-title a:hover {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    text-decoration: underline !important;
}

html body .directory-card .directory-card-terms {
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.64rem !important;
    line-height: 1.5 !important;
    letter-spacing: 0.07em !important;
    color: #9D844C !important;
    margin: 0 0 9px !important;
    text-transform: uppercase !important;
}

html body .directory-card .directory-card-excerpt {
    font-family: 'Cormorant Garamond', Georgia, serif !important;
    font-size: 0.95rem !important;
    line-height: 1.5 !important;
    letter-spacing: 0 !important;
    color: #3A2A2A !important;
    margin: 0 0 13px !important;
}

/* ── 3. BUTTONS — force the text colour ─────────────────────────── */
html body .directory-card .directory-card-actions {
    display: flex !important;
    flex-wrap: wrap !important;
    gap: 7px !important;
    margin: auto 0 0 !important;
    padding: 0 !important;
}

html body .directory-card a.directory-card-link,
html body .directory-card-actions a.directory-card-link,
html body a.directory-card-link:link,
html body a.directory-card-link:visited {
    display: inline-block !important;
    background-image: linear-gradient(180deg, #6B1414 0%, #4A0E0E 100%) !important;
    background-color: #6B1414 !important;
    border: 1px solid #C9A961 !important;
    border-radius: 3px !important;
    color: #F3DFA6 !important;
    -webkit-text-fill-color: #F3DFA6 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    padding: 9px 13px !important;
    text-align: center !important;
}

html body .directory-card a.directory-card-link:hover,
html body .directory-card a.directory-card-link:focus {
    background-image: linear-gradient(180deg, #C9A961 0%, #A88840 100%) !important;
    background-color: #C9A961 !important;
    border-color: #6B1414 !important;
    color: #3A0A0A !important;
    -webkit-text-fill-color: #3A0A0A !important;
    text-decoration: none !important;
}

html body .directory-card a.directory-card-site,
html body .directory-card-actions a.directory-card-site,
html body a.directory-card-site:link,
html body a.directory-card-site:visited {
    display: inline-block !important;
    background: transparent !important;
    background-image: none !important;
    border: 1px solid rgba(201, 169, 97, 0.75) !important;
    border-radius: 3px !important;
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    font-family: 'Cinzel', Georgia, serif !important;
    font-size: 0.68rem !important;
    font-weight: 600 !important;
    line-height: 1.2 !important;
    letter-spacing: 0.08em !important;
    text-transform: uppercase !important;
    text-decoration: none !important;
    padding: 9px 13px !important;
    text-align: center !important;
}

html body .directory-card a.directory-card-site:hover,
html body .directory-card a.directory-card-site:focus {
    background: rgba(201, 169, 97, 0.22) !important;
    color: #4A0E0E !important;
    -webkit-text-fill-color: #4A0E0E !important;
    text-decoration: none !important;
}

/* ── 4. Card media ──────────────────────────────────────────────── */
html body .directory-card .directory-card-media {
    display: block !important;
    margin: 0 !important;
    padding: 0 !important;
    border: 0 !important;
    border-bottom: 1px solid rgba(201, 169, 97, 0.4) !important;
    aspect-ratio: 4 / 3 !important;
}

html body .directory-card .directory-card-img {
    width: 100% !important;
    height: 100% !important;
    object-fit: cover !important;
    margin: 0 !important;
    border: 0 !important;
    border-radius: 0 !important;
    display: block !important;
}

/* ── 5. Grid sizing — wider cards so titles fit ─────────────────── */
html body .directory-grid {
    grid-template-columns: repeat(auto-fill, minmax(240px, 1fr)) !important;
    gap: 22px !important;
}

/* ── 6. Archive header — drop the theme's stray heading ornament ── */
html body .directory-header .directory-title::after,
html body .directory-header .directory-title::before,
html body .directory-header h1::after,
html body .directory-header h1::before {
    content: none !important;
    display: none !important;
}

html body .directory-header .directory-title {
    font-size: clamp(1.6rem, 4vw, 2.4rem) !important;
    margin: 0 0 10px !important;
    text-align: center !important;
}

html body .directory-header .directory-description {
    font-size: 1rem !important;
    line-height: 1.55 !important;
    text-transform: none !important;
}

/* ── 7. Filter pills ────────────────────────────────────────────── */
html body .directory-filters a.directory-filter,
html body a.directory-filter:link,
html body a.directory-filter:visited {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    font-size: 0.68rem !important;
    line-height: 1.2 !important;
    letter-spacing: 0.07em !important;
    text-decoration: none !important;
    border-bottom: 1px solid rgba(201, 169, 97, 0.55) !important;
}

html body .directory-filters a.directory-filter.is-active,
html body .directory-filters a.directory-filter:hover {
    color: #E5C46A !important;
    -webkit-text-fill-color: #E5C46A !important;
}

html body .directory-filters a.directory-filter:hover {
    color: #3A0A0A !important;
    -webkit-text-fill-color: #3A0A0A !important;
}

/* ── 8. Detail page — same inherited-chrome problems ────────────── */
html body .directory-detail .directory-detail-title {
    font-size: clamp(1.5rem, 3.6vw, 2.2rem) !important;
    line-height: 1.22 !important;
    margin: 0 0 12px !important;
}

html body .directory-detail .directory-detail-title::after,
html body .directory-detail .directory-detail-title::before,
html body .directory-detail .directory-detail-subhead::after,
html body .directory-detail .directory-detail-subhead::before {
    content: none !important;
    display: none !important;
}

html body .directory-detail a.directory-term-badge,
html body a.directory-term-badge:link,
html body a.directory-term-badge:visited {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
    text-decoration: none !important;
    border-bottom: none !important;
}

html body .directory-detail .directory-infolist a {
    color: #6B1414 !important;
    -webkit-text-fill-color: #6B1414 !important;
}

html body .directory-detail .directory-detail-body {
    font-size: 1.05rem !important;
    line-height: 1.65 !important;
}

/* ── 9. Responsive ──────────────────────────────────────────────── */
@media (max-width: 768px) {
    html body .directory-grid {
        grid-template-columns: repeat(auto-fill, minmax(210px, 1fr)) !important;
        gap: 16px !important;
    }

    html body .directory-card .directory-card-title {
        font-size: 0.98rem !important;
    }
}

@media (max-width: 480px) {
    html body .directory-grid {
        grid-template-columns: 1fr !important;
        gap: 14px !important;
    }

    html body .directory-card .directory-card-title {
        font-size: 1.05rem !important;
    }

    html body .directory-card .directory-card-actions {
        flex-direction: column !important;
    }

    html body .directory-card a.directory-card-link,
    html body .directory-card a.directory-card-site {
        width: 100% !important;
    }
}
