@import url(//fonts.googleapis.com/css?family=Source+Sans+Pro:700,600,400);

body {
    margin: 0;
}

h1 {
    font-weight: normal;
}

pre {
    overflow-x: auto;
}

th {
    text-align: left;
}

label {
    padding-right: 15px;
    font-weight: bold;
}

textarea {
    font-family: Arial, sans-serif;
    font-size: 100%;
}

input, select, textarea, button {
    font-family: inherit;
}

select {
    -webkit-appearance: auto !important;
    -moz-appearance: auto !important;
    appearance: auto !important;
}

h4, h5 {
    margin: 0;
    padding: 0;
}

hr {
    border: 0;
    height: 1px;
    background: #aaa;
    background: -webkit-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0));
    background: -moz-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0));
    background: -ms-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0));
    background: -o-linear-gradient(left, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0));
    background: linear-gradient(to right, rgba(0, 0, 0, 0), rgba(0, 0, 0, 0.35), rgba(0, 0, 0, 0));
}

fieldset.listing_mgr-listing_fieldset {
    border: 1px solid #e4e4e4;
    border-radius: 8px;
    margin-bottom: 15px;
}

label.listing_mgr-listing_fieldset {
    width: 200px;
}

blockquote.author {
    padding: 11px 5px;
    background: #e4e4e4 none;
}

blockquote.author > span:first-child {
    display: block;
    background: url(img/quote_open.png) no-repeat top left, url(img/quote_close.png) no-repeat bottom right;
    text-indent: 15px;
    padding: 0 15px;
    line-height: 20px;
}

blockquote.author .author {
    display: block;
    margin-left: 35px;
    text-indent: 0;
    margin-top: 10px;
    font-weight: bold;
}

a i, a i:before {
    cursor: pointer !important;
}

.irounded {
    border-radius: 5px;
}

.floatr {
    float: right;
    padding: 0 0 10px 10px;
}

.floatl {
    float: left;
    padding: 0 10px 10px 0;
}

img.floatl {
    float: left;
    max-width: 48%;
    height: auto;
    margin: 0 1em 0.75em 0;
    padding: 0;
}

img.floatr {
    float: right;
    max-width: 48%;
    height: auto;
    margin: 0 0 0.75em 1em;
    padding: 0;
}

.odd {
    background-color: #EFEFEF;
}

.odd2 {
    background-color: #EFEFEF;
}

.odd3 {
    background-color: #E4E4E4;
}

.even {
    background-color: #FFFFFF;
}

.system_message_box {
    border: 1px solid #999;
    background-color: #ccc;
    padding: 10px;
    margin: 10px 0;
    border-radius: 5px;
    font-family: Arial, sans-serif !important;
    font-size: 12px !important;
    line-height: 1 !important;
}

.system_message_box .system_message_head {
    font-weight: bold;
}

.system_message_box.success, .system_message_box.success_no_fade {
    color: #2f9a23 !important;
    border-color: #ccc;
    text-indent: 20px;
    background: url(admin/img/tick.png) no-repeat 10px 10px #cdffdc;
}

.system_message_box.warning {
    color: #808080 !important;
    border-color: #ffc000;
    text-indent: 16px;
    background: url(img/system_message_warn.png) no-repeat 10px 11px #FBF9EE;
}

.system_message_box.error {
    color: #CD0A0A !important;
    border-color: #CD0A0A;
    text-indent: 16px;
    background: url(img/system_message_error.png) no-repeat 10px 11px #FEF1EC;
}

/* Flash messages above module .sw-layout — match inner content inset */
.sw-page-main > .system_message_box {
    box-sizing: border-box;
    margin-left: var(--sw-layout-pad, 1rem);
    margin-right: var(--sw-layout-pad, 1rem);
    width: auto;
}

.sw-layout > .system_message_box:has(+ #blog.sw-layout),
.sw-layout > .system_message_box:has(+ .blog_post_details_page.sw-layout),
.sw-layout > .system_message_box:has(+ .sw-layout.sw-blog-detail) {
    box-sizing: border-box;
    margin-left: var(--sw-layout-pad, 1rem);
    margin-right: var(--sw-layout-pad, 1rem);
    width: auto;
}

.error_highlight {
    background-color: #ff8677 !important;
}

.error img, .warning img, .success img {
    vertical-align: middle !important;
}

.warning_box {
    color: #363636;
    border: 1px solid #FCEFA1;
    padding: 10px;
    margin: 10px 0;
    background-color: #FBF9EE;
}

h1.error, h1.warning, h1.success {
    margin: 5px 0 !important;
}

.infield {
    padding: 2px 2px 2px 5px;
    color: #ccc;
    font-style: italic;
}

.highlighted {
    font-weight: bold;
    background-color: #fdffbc;
}

.highlight_box {
    background-color: #FBFFDA;
    border: 1px solid #F3F3F3;
    padding: 8px;
}

.issue {
    background-color: #ff6d6d;
}

.clear, .spacer {
    clear: both;
    margin: 0;
    padding: 0;
    display: block;
    height: 1px;
    overflow: hidden;
}

.stretch {
    width: 100%;
    display: inline-block;
    font-size: 0;
    line-height: 0;
}

.divider {
    width: 100%;
    height: 1px;
    display: block;
    background-color: #000;
    margin-bottom: 20px;
    overflow: hidden;
}

.pager {
    text-align: right;
}

.wide_field th {
    text-align: left;
}

.wide_field {
    width: 100%;
}

.wide_field label {
    float: left;
    width: 23%;
    text-align: left;
    display: block;
    line-height: 25px;
    font-weight: bold;
    padding: 0 10px 0 4px;
}

.wide_field .fields {
    display: inline-block;
    width: 75%;
}

.std_form2 .wide_field {
    padding: 4px 0;
    vertical-align: top;
}

.inner_table {
    border: 1px solid #cccccc;
    background-color: #ffffff;
    border-collapse: collapse;
}

.inner_table td {
    border: 1px solid #cccccc;
    border-top: none;
    border-left: none;
    color: #000;
}

.clean_table {
    border-collapse: collapse;
    border: 1px solid #f3f3f3;
}

.clean_table td, .clean_table th {
    border: 1px solid #f3f3f3;
    border-top: none;
    border-left: none;
}

.clean_table th {
    font-weight: bold;
    text-align: center;
    background-color: #e9e9e9;
}

.clean_table .odd {
    background-color: #f6f5f9;
}

/**************************************************************************************************************************************************************/

.container-tableResponsive {
    width: 100%;
    margin: 0 auto;
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-box;
    display: -ms-flexbox;
    display: flex;
    align-items: center;
    justify-content: center;
    flex-wrap: wrap;
}

.tableResponsive {
    width: 100%;
}

.tableResponsive table {
    border-spacing: 1px;
    border-collapse: collapse;
    background: white;
    border-radius: 10px;
    overflow: hidden;
    width: 100%;
    max-width: 1170px;
    margin: 0 auto;
    position: relative;
    border: none;
}

.tableResponsive table * {
    position: relative;
}

.tableResponsive table td, .tableResponsive table th {
    padding-left: 8px;
    border: none;
    cursor: default;
}

.tableResponsive table td a {
    text-decoration: underline !important;
}

.tableResponsive table td a:hover {
    text-decoration: none !important;
}

.tableResponsive table thead tr {
    height: 60px;
}

.tableResponsive table tbody tr {
    height: 50px;
}

.tableResponsive table tbody tr:last-child {
    border: 0;
}

.tableResponsive-head th {
    font-size: 18px;
    color: #fff;
    line-height: 1.2;
    font-weight: unset;
}

.tableResponsive tbody tr:nth-child(even) {
    background-color: #ffffff;
}

.tableResponsive tbody tr {
    font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
    font-size: 15px;
    line-height: 1.2;
    font-weight: unset;
    border: none;
}

.tableResponsive tbody tr:hover {
    cursor: pointer;
}

@media screen and (max-width: 992px) {
    .tableResponsive table {
        display: block;
    }

    .tableResponsive table > *, .tableResponsive table tr, .tableResponsive table td, .tableResponsive table th {
        display: block;
    }

    .tableResponsive table thead {
        display: none;
    }

    .tableResponsive table tbody tr {
        height: auto;
        padding: 7px 0;
    }

    .tableResponsive table tbody tr td {
        padding-left: 40% !important;
        margin-bottom: 0;
    }

    .tableResponsive table tbody tr td:last-child {
        margin-bottom: 0;
    }

    .tableResponsive table tbody tr td:before {
        font-family: Arial, "Helvetica Neue", Helvetica, sans-serif;
        font-size: 14px;
        color: #999999;
        line-height: 1.2;
        font-weight: unset;
        position: absolute;
        width: 40%;
        left: 30px;
    }

    .tableResponsive table tbody tr td:before {
        content: attr(data-column-name);
        font-weight: bold;
    }

    .tableResponsive .column {
        width: 100%;
    }

    .tableResponsive tbody tr {
        font-size: 14px;
    }
}

@media (max-width: 576px) {
    .container-tableResponsive {
        padding-left: 15px;
        padding-right: 15px;
    }
}

/**************************************************************************************************************************************************************/

.full_edit {
    width: 98%;
    padding: 0;
}

.inp_checkbox.full_edit, .inp_radio.full_edit {
    width: auto;
}

.thead {
    background: url(img/gbg.gif);
    padding: 4px;
    margin: 0;
    border: 1px solid #CCCCCC;
    border-bottom: none;
    border-top: none;
    font-size: 13px;
    font-weight: bold;
    color: #333333;
}

.boxed {
    border: 1px solid #CCCCCC;
    background-color: #f5f5f5;
    border-top: none;
    margin-bottom: 10px;
    padding: 5px;
}

.boxed.nohead {
    border-top: 1px solid #CCCCCC;
}

.inlineimg {
    vertical-align: middle;
}

.tab_set {
    margin: 5px 0;
}

.tab_set .tab_nav ul {
    list-style-type: none;
    list-style-image: none;
    margin: 0;
    padding: 0;
    height: 23px;
}

.tab_set .tab_nav ul li {
    float: left;
    padding: 0 20px;
    height: 22px;
    line-height: 22px;
    text-align: center;

    background-color: #ededed;

    border: 1px solid #e3e3e3;
    border-bottom: none;
    border-top-left-radius: 5px;
    border-top-right-radius: 5px;
    margin-right: 5px;
}

.tab_set .tab_nav ul li a {
    display: block;
    margin: 0;
    padding: 0;
    text-decoration: none;
    background: none !important;
}

.tab_set .tab_nav ul li.active, .tab_set .tab_nav ul li.selected {
    background-color: #fff;
    height: 23px;
}

.tab_set .tab {
    border-top: 1px solid #cecdcd;
    padding: 10px;
    border-bottom: none;
    background-color: #fff;
    box-sizing: border-box;
    font-size: 14px;
}

/* Underline tabs — product detail and other software panels */
.sw-tabs__nav {
    display: flex;
    flex-wrap: wrap;
    gap: 0;
    border-bottom: 1px solid var(--sw-border-color, #e3e3e3);
    margin-bottom: 1rem;
}

.sw-tabs__tab {
    display: inline-block;
    padding: 0.65rem 1rem;
    margin-bottom: -1px;
    border-bottom: 2px solid transparent;
    color: var(--sw-text-muted, #666);
    font-weight: 600;
    text-decoration: none;
    background: none;
}

/* Beat theme #sub .main a { color: … } on product detail and CMS pages */
html body #sub .main a.sw-tabs__tab,
html body .sw-layout a.sw-tabs__tab {
    color: var(--sw-text-muted, #666) !important;
    text-decoration: none !important;
}

.sw-tabs__tab:hover,
html body #sub .main a.sw-tabs__tab:hover,
html body .sw-layout a.sw-tabs__tab:hover {
    color: var(--sw-link, #56707d) !important;
    text-decoration: none !important;
}

.sw-tabs__tab.is-active,
html body #sub .main a.sw-tabs__tab.is-active,
html body .sw-layout a.sw-tabs__tab.is-active {
    color: var(--sw-surface-text, #222) !important;
    border-bottom-color: var(--sw-accent, #14181f);
}

.sw-tabs__panel {
    padding-top: 0.25rem;
}

.std_form .inp {
    width: 200px;
    overflow: hidden;
    border: 1px solid #ccc;
}

.std_form select.inp {
    width: 202px;
}

.std_form button, .std_button {
    width: auto !important;
    background: transparent url('img/btn_fluid.png') repeat-x top left !important;
    border: 1px solid #d3d3d3 !important;
    text-align: center !important;
    /*line-height: 24px !important;*/
    padding: 0 20px !important;
    height: 24px !important;
    display: -moz-inline-box !important;
    display: inline-block !important;
    cursor: pointer !important;
    text-decoration: none !important;
    color: #000 !important;
    vertical-align: middle !important;
}

a.std_button {
    line-height: 24px;
}

.std_button:hover {
    text-decoration: none;
}

.std_form button img, .std_button img {
    vertical-align: text-bottom;
}

a.std_button img {
    vertical-align: middle;
}

.std_button.fluid.condensed {
    padding: 0 10px;
}

.std_button.bsmall {
    height: 18px;
    line-height: 18px;
    padding: 0 5px;
}

.std_form button.fluid:hover, .std_button.fluid:hover {
    border-color: #999999
}

.std_form button:hover, .std_button:hover {
    background-position: bottom right !important;
}

.std_form .captcha_img {
    vertical-align: bottom;
}

.std_form .captcha {
    width: 50px;
}

#captcha_exp {
    width: 300px;
    height: 150px;
    background-color: #fff;
    padding: 10px;
}

#login_box_pop {
    background-color: #fff;
    padding: 15px;
    border: 1px solid #ccc;
    border-radius: 15px;
}

.small_box {
    border: 1px solid #CCCCCC;
    background-color: #f5f5f5;
    padding: 5px;
    border-radius: 5px;
    margin: 5px 0;
}

.form_box {
    color: #000;
    padding: 10px;
}

.form_box h1 {
    color: #333333;
    font-size: 18px;
    font-weight: bold;
    margin: 0 0 5px;
    padding: 0 0 7px;
}

.form_box.login_box .fb_login, .form_box.register_box .fb_login {
    padding-top: 35px;
}

.form_box.login_box .twit_login, .form_box.register_box .twit_login {
    padding-top: 20px;
}

.form_box.login_box.w_social_login .creds_input {
    float: right;
}

.form_box.register_box.w_social_login .creds_input {
    float: left;
}

.form_box.login_box.w_social_login .smm_logins {
    float: left;
}

.form_box.register_box.w_social_login .smm_logins {
    float: right;
}

.form_box.login_box.w_social_login .box_bot, .form_box.register_box.w_social_login .box_bot {
    clear: both;
}

.tooltip {
    position: relative;
}

.tooltip > span {
    display: none;
    position: absolute;
    background-color: #ffffff;
    padding: 5px;
    border: 1px solid #ccc;
    color: #6d6f6f;
    text-decoration: none;
    font-size: 11px;
    width: 200px;
    line-height: 14px;
    border-radius: 5px;
}

.tooltip:hover {
    background-color: transparent;
    z-index: 50;
}

.tooltip:hover > span {
    display: block;
    top: 0;
    left: 30px;
}

.tooltip.tbelow > span {
    left: -110px;
    top: 10px;
}

.tooltip.ttop > span {
    left: -310px;
    top: -370px;
}

.tooltip.middle > span {
    left: -310px;
    top: 35px;
}

.tooltip.righty > span {
    left: -210px;
}

.tooltip.righty2 > span {
    left: -630px;
}


.tooltip.tbelow > span {
    left: -110px;
    top: 10px;
}

.tooltip.righty > span {
    left: -210px;
}

.infield {
    padding: 2px 2px 2px 5px;
    color: #666666;
}

.labelled {
    color: #ccc;
}

.file .file-cont {
    margin: 0 0 0 100px;
}

.selected {
    font-weight: bold;
}

.pop_box {
    width: 266px;
    position: absolute;
    bottom: 0;
    right: 0;
}

.pop_box h2 {
    font-size: 12px;
    font-weight: bold;
}

.pop_box .pop_head {
    height: 20px;
    background: url(img/round_box.png) no-repeat top left;
    float: left;
    width: 258px;
    padding: 4px;
}

.pop_box .pop_head h2 {
    color: #fff;
    font-weight: bold;
    padding-top: 2px;
}

.pop_box .pop_middle {
    background-color: #fff;
    width: 246px;
    padding: 10px;
    float: left;
}

.pop_box .pop_foot {
    height: 7px;
    background: url(img/round_box.png) no-repeat bottom left;
    float: left;
    width: 266px;
}


.captcha_area img {
    vertical-align: middle;
}


/*
 * imgAreaSelect style to be used with deprecated options
 */

.imgareaselect-border1, .imgareaselect-border2,
.imgareaselect-border3, .imgareaselect-border4 {
    opacity: 0.5;
}

.imgareaselect-border1 {
    border: solid 1px #000;
}

.imgareaselect-border2 {
    border: dashed 1px #fff;
}

.imgareaselect-handle {
    background-color: #fff;
    border: solid 1px #000;
    opacity: 0.5;
}

.imgareaselect-outer {
    background-color: #000;
    opacity: 0.4;
}

.imgareaselect-selection {
    background-color: #fff;
    opacity: 0;
}

.pager_page {
    border: 1px solid #CECECE;
    padding: 1px 6px;
    text-decoration: none;
    display: inline-block;
}

.pager_page:hover, .pager_selected {
    background-color: #fefefe;
}

.pager_dots {
    padding: 4px;
}

.multi_step_bar {
    margin: 2px;
    background-color: #f1f1f1;
    color: #666666;
    padding: 10px 0 10px 10px;
    font-family: 'Source Sans Pro', Arial, sans-serif;
    font-size: 16px;
}

.multi_step_bar .bargen {
    display: inline-block;
    margin-right: 25px;
}

.multi_step_bar .bargen span {
    display: inline-block;
}

.multi_step_bar .bargen span.num {
    color: #fff;
    padding: 0;
    text-align: center;
    display: inline-block;
    width: 18px;
    height: 18px;
    line-height: 1;
    border-radius: 18px;
    background: #c6c5c7;
    margin-right: 8px;
    font-weight: normal;
}

.multi_step_bar .bargen.active {
    font-weight: bold;
}

.step_action_buttons {
    margin-top: 2px;
    text-align: right;
}

.step_action_buttons .btn {
    min-width: 120px;
    text-align: center;
}

.separated_area h3 {
    padding: 11px 14px;
    background: #f1f1f1;
    margin-bottom: 10px;
}

.small_desc {
    font-size: 10px;
}

.boxsz {
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.simple_progress {
    height: 7px;
    display: block;
    width: 65px;
    border-radius: 10px;
    background-color: #ececec;
}

.simple_progress > span {
    display: block;
    height: 7px;
    background-color: #abe076;
    border-radius: 10px;
}

.simple_progress.pblank {
    background-color: #fff;
    border: 1px solid #ccc;
}

.simple_progress.pblank > span {
    background-color: #fff;
}

.simple_progress.pwarn {
    background-color: #feffc9;
}

.simple_progress.pwarn > span {
    background-color: #fac306;
}

.simple_progress.pcritical {
    background-color: #ffcece;
}

.simple_progress.pcritical > span {
    background-color: #da0000;
}

.img-shadow {
    background-color: #FFFFFF;
    box-shadow: 2px 4px 13px #BBBBBB;
    padding: 1px
}

.img-shadow-border {
    background-color: #FFFFFF;
    border: 1px solid #9EA0A2;
    box-shadow: 2px 4px 13px #BBBBBB;
    padding: 1px
}

.btn_link {
    text-decoration: none !important;
}

.btn_link img {
    vertical-align: middle;
}

.btn_link span {
    text-decoration: underline !important;
}

.btn_link:hover span {
    text-decoration: none !important;
}

h1 .btn_link {
    font-size: 11px;
}

.ui-dialog-content, .ui-datepicker * {
    font-size: 12px;
}

.ui-dialog-content h1 {
    font-size: 14px;
}

.table_calendar th {
    color: #fff;
    background-color: #777;
    line-height: 14px;
}

.table_calendar td {
    background-color: #ddd;
}

.table_calendar .nomonth {
    background-color: #ccc;
}

.table_calendar .deactive {
    background-color: #ccc;
    color: #aaa;
}

.clickable {
    cursor: pointer;
}

.lightbox_me_box {
    padding: 10px;
    background-color: #fff;
    position: relative;
    box-shadow: 0 0 10px 10px rgba(0, 0, 0, 0.5);
}

.lightbox_me_box .lb_close {
    position: absolute;
    top: -15px;
    right: -15px;
    width: 30px;
    height: 30px;
    display: block;
    background: url(img/lb_close.png) no-repeat top left;
}

.columned_box {
    border: 1px solid #E1E0E0;
    font-size: 11px;
    margin-bottom: 8px;
    position: relative;
    background-color: #fff;
}

.columned_box-top, .columned_box-bottom {
    padding: 8px;
}

.columned_box a {
    text-decoration: none;
}

.columned_box-title, .columned_box-title a {
    color: #000;
}

.columned_box-bottom, .columned_box-bottom a {
    color: #000;
}

.columned_box-bottom {
    background-color: #F2F0F1;
    padding: 7px 0 5px;
}

.columned_box-details {
    padding: 0 8px;
}

.columned_box-user-image {
    float: left;
    height: 20px;
    margin-right: 10px;
    overflow: hidden;
    width: 20px;
}

.columned_box-user-image img {
    max-width: 20px;
}

.border-top {
    border-top: 1px solid #000;
}

.border-bottom {
    border-bottom: 1px solid #000;
}

.border-top, .border-bottom, .border-right, .border-left {
    border-color: #cfd0d0;
}

.alt_bg {
    background: #f1f1f1;
}

.primary_color {
    background-color: #013e7b !important;
    color: #fff !important;
}

.primary_color a {
    color: inherit !important;
}

.primary_color_foreground {
    color: #7a7b7e !important;
}

.secondary_color {
    background-color: #393939 !important;
    color: #fff !important;
}

.secondary_color.triangle_bottomright {
    background-image: url(img/triangle_clip_topleft.png) !important;
    background-repeat: no-repeat !important;
    background-position: top left !important;
    background-size: cover !important;
}

.primary_color.btn, .secondary_color.btn {
    line-height: 1;
    font-size: 11px;
    display: inline-block;
    border: none;
    padding: 8px 15px 6px;
    cursor: pointer;
    text-decoration: none;
    text-transform: uppercase;
    box-sizing: border-box;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    font-family: 'Source Sans Pro', Arial, sans-serif;
    font-weight: 600;
}

.primary_color.btn:hover, .secondary_color.btn:hover {
    opacity: 0.85;
}

/* Higher specificity than e.g. `button.forward_submit { background: ... !important }` in a
   customer skin, which can beat `.primary_color` alone (one class) in the !important cascade. */
button.luna-btn.primary_color.btn,
button.luna-btn.primary_color {
    background-color: #013e7b !important;
    color: #fff !important;
}

a.luna-btn.primary_color.btn {
    background-color: #013e7b !important;
    color: #fff !important;
}

/* Module CTAs often use <a class="primary_color btn"> without luna-btn — platform default, not per-theme */
a.primary_color.btn,
a.primary_color.btn.smaller,
a.primary_color.btn.medium {
    background-color: #013e7b !important;
    color: #fff !important;
    text-decoration: none;
}

a.primary_color.btn:hover,
a.primary_color.btn.smaller:hover {
    opacity: 0.88;
    color: #fff !important;
}

.primary_color.btn img, .secondary_color.btn img {
    vertical-align: middle;
}

.primary_color.btn.medium, .secondary_color.btn.medium {
    padding: 6px 8px 5px;
}

.primary_color.btn.smaller, .secondary_color.btn.smaller {
    padding: 3px 7px 2px;
    font-size: 11px;
}

.primary_color.btn.smallest, .secondary_color.btn.smallest {
    padding: 2px 5px 1px;
    font-size: 11px;
}

.primary_color.btn.highlighted, .secondary_color.btn.highlighted {
    background-color: #b5967c !important;
    font-weight: normal;
}

.btn.wide {

}

/* Mini Cart Styles */
.mini_cart_item {
    padding: 2px 0;
    font-size: 11px;
}

.mini_cart_item + .mini_cart_item {
    padding-top: 0;
}

.mini_cart_total {
    border-top: 1px solid #c0c1c1;
    padding-top: 5px;
}

/* Shared module search — blog, cart, LM. The attached control is one field-radius group. */
body .sw-global_small_search {
    position: relative;
    width: 100%;
    box-sizing: border-box;
    margin-bottom: 0;
    text-align: left;
    padding: 0;
}

#left .sw-global_small_search,
#left .shopping_left_search.sw-global_small_search,
#sub .leftcol .sw-global_small_search,
#sub .leftcol .shopping_left_search.sw-global_small_search,
#sub .main .sw-global_small_search,
.sw-page-aside .sw-global_small_search,
.sub-sidebar .sw-global_small_search,
.sw-blog-main-search.sw-global_small_search {
    padding-left: 0 !important;
    padding-right: 0 !important;
}

body .sw-global_small_search form {
    position: relative;
    display: flex;
    align-items: stretch;
    width: 100%;
    margin: 0;
    padding: 0;
    overflow: visible;
}

body .sw-global_small_search .sicon {
    position: absolute;
    top: 50%;
    left: var(--sw-field-padding-x, 0.75rem);
    transform: translateY(-50%);
    z-index: 1;
    pointer-events: none;
}

body .sw-global_small_search .sicon,
body .sw-global_small_search .sicon * {
    font-size: 14px;
    color: var(--sw-secondary, #382933);
    margin: 0;
}

/* Skin themes often use input/button { … !important }; chained selectors + !important to win */
html body div.sw-global_small_search input[type="text"].txtsearch,
html body #sub .main div.sw-global_small_search input[type="text"].txtsearch,
html body #sub .leftcol div.sw-global_small_search input[type="text"].txtsearch,
html body div.listing_mgr_search.sw-global_small_search input[type="text"].txtsearch,
html body div.shopping_left_search.sw-global_small_search input[type="text"].txtsearch {
    flex: 1 1 auto !important;
    width: auto !important;
    min-width: 0 !important;
    min-height: var(--sw-field-min-height, 2.5rem) !important;
    padding:
        var(--sw-field-padding-y, 0.55rem)
        var(--sw-field-padding-x, 0.75rem)
        var(--sw-field-padding-y, 0.55rem)
        calc(var(--sw-field-padding-x, 0.75rem) + 1.25rem) !important;
    font-size: 0.9rem !important;
    line-height: 1.3 !important;
    background: var(--sw-field-bg, var(--sw-surface-bg, #fff)) !important;
    color: var(--sw-field-text, var(--sw-surface-text, #222)) !important;
    border: 1px solid var(--sw-border-color, #d7dce0) !important;
    border-right: none !important;
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px)) 0 0 var(--sw-field-radius, var(--sw-radius, 10px)) !important;
    /* Input and button are one joined control; a theme's generic input { margin } splits it. */
    margin: 0 !important;
    box-sizing: border-box !important;
}

html body div.listing_mgr_search.sw-global_small_search.map_search input[type="text"].txtsearch {
    width: 100% !important;
    flex: none !important;
    border-right: 1px solid var(--sw-border-color, #d7dce0) !important;
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px)) !important;
    margin: 0 !important;
}

html body div.sw-global_small_search:not(.map_search) button[type="submit"],
html body #sub .main div.sw-global_small_search:not(.map_search) button[type="submit"],
html body #sub .leftcol div.sw-global_small_search:not(.map_search) button[type="submit"],
html body div.listing_mgr_search.sw-global_small_search:not(.map_search) button[type="submit"],
html body div.shopping_left_search.sw-global_small_search button[type="submit"] {
    position: static !important;
    top: auto !important;
    right: auto !important;
    bottom: auto !important;
    flex: 0 0 auto !important;
    width: auto !important;
    min-width: 2.75rem !important;
    min-height: var(--sw-field-min-height, 2.5rem) !important;
    height: auto !important;
    padding: 0 var(--sw-field-padding-x, 0.75rem) !important;
    display: inline-flex !important;
    align-items: center !important;
    justify-content: center !important;
    font-size: 0.9rem !important;
    background: var(--sw-accent, #14181f) !important;
    color: var(--sw-accent-contrast, #fff) !important;
    border: none !important;
    border-radius: 0 var(--sw-field-radius, var(--sw-radius, 10px)) var(--sw-field-radius, var(--sw-radius, 10px)) 0 !important;
    cursor: pointer !important;
    margin: 0 !important;
    box-sizing: border-box !important;
}

html body div.listing_mgr_search.sw-global_small_search.map_search button[type="submit"] {
    width: 25px !important;
    min-width: 25px !important;
    min-height: var(--sw-field-min-height, 2.5rem) !important;
    padding: 0 !important;
    box-sizing: border-box !important;
    text-align: center !important;
    background: var(--sw-accent, #14181f) !important;
    color: var(--sw-accent-contrast, #fff) !important;
    border: none !important;
    border-radius: 0 var(--sw-field-radius, var(--sw-radius, 10px)) var(--sw-field-radius, var(--sw-radius, 10px)) 0 !important;
    cursor: pointer !important;
    margin: 0 !important;
}

body .sw-global_small_search button * {
    color: inherit;
    font-size: inherit;
    line-height: inherit;
    margin: 0
}

html body div.sw-global_small_search button[type="submit"]:hover,
html body div.listing_mgr_search.sw-global_small_search button[type="submit"]:hover,
html body div.shopping_left_search.sw-global_small_search button[type="submit"]:hover,
html body div.listing_mgr_search.sw-global_small_search.map_search button[type="submit"]:hover {
    opacity: 0.88;
}

.map_search button {
    width: 25px;
}

.map_search input[type=text] {
    width: 100%;
}

.map_search #search_form {
    display: grid;
    grid-template-columns: 10fr 3fr 25px;
}

.map_search .sicon {
    left: unset;
    transform: translateY(-50%) translateX(5px);
}

.std_form2, .std_form2 input[type=text], .std_form2 input[type=email], .std_form2 input[type=password], .std_form2 textarea, .std_form2 select {
    font-size: 15px;
    font-family: 'Source Sans Pro', Arial, sans-serif;
}

.std_form2 .field_box {
    margin: 10px 0;
    display: block;
    position: relative;
    clear: both;
}

.std_form2 .field_box .cc_row {
    display: inline-grid;
    grid-template-columns: 5fr 1fr 10px 1fr;
    grid-gap: 3px;
    justify-items: center;
    align-items: center;
}

.tac {
    text-align: center;
}

.std_form2 label {
    color: #707070;
    font-weight: 700;
    text-transform: uppercase;
    padding-right: 5px;
    font-size: 13px;
    font-family: 'Source Sans Pro', Arial, sans-serif;
    letter-spacing: 0;
}

.std_form2 .extra {
    font-size: 12px;
    color: #8b8b8b;
}

.std_form2 .extra label {
    text-transform: none;
    padding: 0;
    font-weight: normal;
}

.std_form2 input[type=text], .std_form2 input[type=email], .std_form2 input[type=password], .std_form2 textarea, .std_form2 select {
    border: 1px solid #bdc3c7;
    width: calc(100% - 20px);
    background: #fff;
    box-sizing: border-box;
    color: #666;
    transition: border-color 0.5s ease-in-out 0s;
}

.std_form2 input[type=text]:hover, .std_form2 input[type=email]:hover, .std_form2 input[type=password]:hover, .std_form2 textarea:hover, .std_form2 select:hover, .std_form2 input[type=text]:focus, .std_form2 input[type=email]:focus, .std_form2 input[type=password]:focus, .std_form2 textarea:focus, .std_form2 select:focus {
    border-color: #7a7b7e;
}

.std_form2 input[type=text], .std_form2 input[type=email], .std_form2 input[type=password], .std_form2 textarea, .std_form2 select {
    padding: 5px 6px;
    box-sizing: border-box;
}

.std_form2 .wicon {
    position: relative;
}

.std_form2 .wicon input[type=text], .std_form2 .wicon input[type=email], .std_form2 .wicon input[type=password], .std_form2 .wicon textarea, .std_form2 .wicon select {
    padding-left: 29px;
}

.std_form2 .wicon i {
    position: absolute;
    top: 0.5em;
    left: 8px;
    pointer-events: none;
}

.std_form2 .wicon i.fa {
    position: relative;
    top: 0;
    left: 0;
    pointer-events: all;
}

.std_form2 input[type=text].captcha {
    width: 50px;
    margin-right: 5px;
    vertical-align: middle;
    -moz-box-sizing: border-box;
    -webkit-box-sizing: border-box;
    box-sizing: border-box;
}

.std_form2 .captcha_area a {
    font-size: 11px;
}

.std_form2 td {
    padding: 4px 0;
    vertical-align: top;
}

@media screen and (max-width: 480px) {
    .std_form2 td {
        display: block;
        width: 100% !important;
    }
    .std_form2 .profile_view_data td tr td {
        display: table-cell;
        width: auto !important;
    }
    .std_form2 .profile_view_data #photo_area {
        margin-left: 0;
        text-align: center;
    }
}

.std_form2 td.lbl {
    width: 130px;
}

.std_form2 td label {
    padding-top: 3px;
    display: inline-block;
}

.std_form2 .tooltip_overlay {
    position: relative;
}

.std_form2 .tooltip_overlay input[type=text], .std_form2 .tooltip_overlay input[type=email], .std_form2 .tooltip_overlay input[type=password], .std_form2 .tooltip_overlay textarea {
    padding-right: 18px;
}

.std_form2 .tooltip_overlay .tooltip {
    position: absolute;
    top: 2px;
    right: 2px;
}

.std_form2 .tooltip_overlay.t2 input[type=text], .std_form2 .tooltip_overlay.t2 input[type=email], .std_form2 .tooltip_overlay.t2 input[type=password], .std_form2 .tooltip_overlay.t2 textarea {
    padding-right: 28px;
}

.std_form2 .tooltip_overlay .tooltip2 {
    right: 20px;
}

.std_form2 div.jmess {
    font-size: 10px;
}

.std_form2 div.jmess img {
    height: 10px;
}

.std_form2 span, .separated_area span, .register_login span {
    font-size: 14px;
    text-transform: uppercase;
    margin-bottom: 5px;
    font-weight: 700;
    font-family: 'Source Sans Pro', Arial, sans-serif;
}

.std_form2 .boxed {
    border: none;
    background: #fafafa;
    padding: 10px 13px;
}

.separated_area h3.has_below {
    margin-bottom: 0;
}

.std_form2 .tighter_table td {
    padding: 0;
}

.std_form2 .padding_table td, .std_form2 .padding_table th {
    padding: 5px;
}

.std_form2 .boxed {
    color: #666;
}

.login_form {
    width: 50%;
}

.full_size_form .login_form {
    width: 100%;
}

.register_form {
    width: 60%;
}

.login_page .smm_logins, .register_page .smm_logins {
    float: left;
    width: 30%;
    margin-left: 5%;
}

.login_page .w_social_login .creds_input, .register_page .w_social_login .creds_input {
    float: left;
    width: 50%;
    border-left: 1px solid #ccc;
    padding-left: 8%;
}

.login_page .w_social_login .creds_input .lbl {
    width: 100px;
}

.login_page .w_social_login .creds_input .login_form, .register_page .w_social_login .creds_input .register_form {
    width: 100%;
}

.login_page .smm_logins .fb_login {
    margin-top: 4px;
}

.login_page .smm_logins .fb_login, .login_page .smm_logins .twit_login, .register_page .smm_logins .fb_login, .register_page .smm_logins .twit_login {
    padding: 5px;
}

.login_page .smm_logins .fb_login a > img, .login_page .smm_logins .twit_login a > img, .register_page .smm_logins .fb_login a > img, .register_page .smm_logins .twit_login a > img {
    max-width: 80%;
}

.smm_logins .fb_login a:hover > img, .smm_logins .twit_login a:hover > img {
    opacity: 0.88;
}

.register_login .login_area, .register_login .register_area {
    width: 43%;
    float: left;
}

.register_login .login_form, .register_login .register_form {
    width: 100%;
}

.register_login .login_area .std_form2 td.lbl, .std_form2.smaller_lbl td.lbl {
    width: 100px;
}

.register_login .register_area {
    float: right;
    width: 47%;
}

.login_form.std_form2 input[type=checkbox] {
    vertical-align: middle;
}

.small_note {
    font-size: 11px;
}

.embed-responsive {
    position: relative;
    display: block;
    height: 0;
    padding: 0;
    overflow: hidden;
}

.embed-responsive.embed-responsive-16by9 {
    padding-bottom: 56.25%;
}

.embed-responsive.embed-responsive-4by3 {
    padding-bottom: 75%;
}

.embed-responsive iframe {
    position: absolute;
    top: 0;
    bottom: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: 0;
}

.show-block-md, .show-block-lg {
    display: none !important;
}

@media (max-width: 800px) {
    .responsive .stack-lg {
        float: none !important;
        display: block !important;
        width: auto !important;
    }

    .responsive .show-block-lg {
        display: block !important;
    }

    .responsive .hide-lg {
        display: none !important;
    }
}

@media (max-width: 500px) {
    .responsive .stack-md {
        float: none !important;
        display: block !important;
        width: auto !important;
    }

    .responsive .show-block-md {
        display: block !important;
    }

    .responsive .hide-md {
        display: none !important;
    }
}

/*Form Responsive CSS*/
@media (min-width: 320px) and (max-width: 480px) {
    /* phones */
    [id*="form_"] {
        width: 100% !important;
        max-width: 100% !important;
    }

    form.the_form {
        width: 100% !important;
        box-sizing: border-box;
    }

    form.the_form table {
        max-width: 100% !important;
        width: 100% !important;
        height: auto !important;
    }

    form.the_form table#form_table_custom td:first-child {
        width: auto !important;
    }

    form.the_form table .g-recaptcha > div {
        margin: 0 auto 15px;
    }
}

/* Form Builder: reCAPTCHA v2 in narrow sidebars — scale() does not reduce layout width; clip + left origin */
#the_form .sw-form-builder-recaptcha-wrap,
form.the_form .sw-form-builder-recaptcha-wrap {
    box-sizing: border-box;
    max-width: 100%;
    width: 100%;
    overflow: hidden;
    text-align: left;
    margin: 0.75rem 0 0;
    min-height: 0;
}
#the_form .sw-form-builder-recaptcha-wrap .g-recaptcha,
form.the_form .sw-form-builder-recaptcha-wrap .g-recaptcha {
    transform: scale(0.77);
    -webkit-transform: scale(0.77);
    transform-origin: 0 0;
    -webkit-transform-origin: 0 0;
}
/* Compact widget is already narrow; scaling keeps a tall layout box and adds gap above submit */
#the_form .sw-form-builder-recaptcha-wrap .g-recaptcha[data-size="compact"],
form.the_form .sw-form-builder-recaptcha-wrap .g-recaptcha[data-size="compact"] {
    transform: none;
    -webkit-transform: none;
}
#the_form .sw-form-builder-recaptcha-wrap .g-recaptcha > div,
form.the_form .sw-form-builder-recaptcha-wrap .g-recaptcha > div {
    margin: 0;
}

.hide-except-for-print {
    display: none;
}

@media print {
    .hide-except-for-print {
        display: unset;
    }

    html, html *, body, body * {
        visibility: hidden;
    }

    .hide-on-print, .hide-on-print * {
        visibility: hidden !important;
        display: none !important;
    }

    #section-to-print, #section-to-print * {
        visibility: visible;
    }

    #section-to-print {
        position: absolute;
        left: 0;
        top: 0;
    }
}

.ui-dialog-titlebar-close, .ui-dialog-titlebar-close:hover {
    outline: none;
}

.cc_img {
    vertical-align: middle;
    display: inline-block;
    width: 40px;
}

.cc_img_container {
    vertical-align: middle;
    display: inline-block;
}

.state-primary td select, .state-primary td input {
    margin: 0 8px;
}

.state-primary td input:first-of-type, .state-primary td input:last-of-type {
    margin: 0 !important;
}

.state-primary td {
    display: -webkit-box;
    display: -webkit-flex;
    display: -moz-flex;
    display: -ms-flexbox;
    display: flex;
}

.area_served_top_link {
    width: 200px;
    float: left;
}

div#tell_friend input {
    vertical-align: middle;
    height: 32px;
    padding: 2px 8px;
    box-sizing: border-box;
    width: 100%;
    margin-right: 0;
    font-size: 14px;
    border: 1px solid #d2d2d2;
    color: #464646;
}
div#tell_friend textarea {
    vertical-align: middle;
    height: 50px;
    padding: 2px 8px;
    box-sizing: border-box;
    width: 100%;
    margin-right: 0;
    font-size: 14px;
    border: 1px solid #d2d2d2;
}

div#tell_friend input::-webkit-input-placeholder { /* Edge */
    color: #464646;
}

div#tell_friend  input:-ms-input-placeholder { /* Internet Explorer 10-11 */
    color: #464646;
}

div#tell_friend  input::placeholder {
    color: #464646;
}


/*Mobile Responsive CSS*/
@media only screen and (max-width: 767px) {

    .multi_step_bar {
        margin: 20px 0 20px 0;
        font-size: 14px;
    }

    .hide-on-mobile {
        display: none !important;
    }

    .luna-btn,
    .primary_color.luna-btn,
    .primary_color.btn,
    .primary_color.luna-btn.btn {
        width: 100%;
        padding: 10px 12px;
    }
    .cart_output .primary_color.luna-btn.cart_output_update_btn {
        width: auto;
    }
    .cart_output button.luna-btn.primary_color.btn {
        width: auto;
    }
    #uppermenu .primary_color.btn, #uppermenu a.primary_color.btn {
        padding: 8px 15px 6px !important;
        width: auto;
    }
    .register_login .login_area, .register_login .register_area {
        width: 100%;
    }
    .register_login .register_area {
        width: 100%;
    }
    .promo_cert_gift button.luna-btn.primary_color {
        margin-top: 8px;
    }
    .register_form .stack-md.wicon {
        width: 100% !important;
    }
    .register_form .field_box .stack-md.wicon:first-child {
        margin-bottom: 10px;
    }
    .multi_step_bar {
        display: none;
    }
    .step_action_buttons button.luna-btn {
        margin-top: 10px;
    }
    .credit_card_info input#card_number {
        width: 100% !important;
        margin-bottom: 10px;
    }
    .credit_card_info .extra {
        margin: 10px 0;
        vertical-align: middle;
    }
    .login_form {
        width: 100%!important;
    }
    .login_box .primary_color.btn.smaller {
        padding: 10px 20px;
    }
    .register_form {
        width: 100% !important;
    }
    .register_page .primary_color.btn {
        padding: 10px 20px;
    }
    .std_form2 table {
        width: 100%;
    }

}

@media only screen and (min-width: 768px) {
    .hide-except-for-mobile {
        display: none !important;
    }
}

#div_cc_info {
    display: inline-flex;
    flex-flow: row wrap;
    width: calc(100% - 20px);
}

#div_cc_info > div {
    display: inline;
    width: min-content;
    flex-grow: 0;
    flex-shrink: 0;
}

#div_cc_info > #card_number {
    flex-grow: 1;
    flex-shrink: 1;
    flex-basis: 400px;
    margin-left: 0;
}

#div_cc_info > #div_cc_exp {
    flex-basis: 92px;
}

#div_cc_info > #div_cc_cvv {
    flex-basis: 135px;
    margin-right: 0;
}

@media (min-width: 480px) {
    #div_cc_info {
        flex-flow: row nowrap;
    }
    #div_cc_info > div {
        margin: 0 4px;
    }

    #div_cc_info > #card_number {
        margin-right: 4px;
    }
}

@media (max-width: 480px) {
    .std_form2 .matrix-field td {
        display: table-cell;
    }

    .std_form2 .matrix-field {
        overflow-x: scroll;
    }

    .std_form2 .matrix-field .matrix_col_heading {
        font-size: 12px;
    }
}

/* Hide the spin buttons on number inputs */
/* Chrome, Safari, Edge, Opera */
input[type=number]::-webkit-outer-spin-button,
input[type=number]::-webkit-inner-spin-button {
    -webkit-appearance: none;
    margin: 0;
}

/* Firefox */
input[type=number] {
    -moz-appearance: textfield;
}

/* Legacy LM Styler aliases retained for saved customer CSS compatibility.
   New platform and module rules use the canonical --sw-* block below. */
:root {
    --lm-high-color: #013e7b;
    
    --lm-heading-color-one: #333333;
    --lm-heading-color-two: #333333;
    
    --lm-link-color: #013e7b;
}

/* ===================================================================
   SW Layout Root
   -------------------------------------------------------------------
   Wrap all software-generated UI in:
   <div class="sw-layout"> ... </div>
   =================================================================== */

.sw-layout {
    display: block;
    width: 100%;
    padding: var(--sw-layout-pad, 1rem);
    box-sizing: border-box;

    /*
      Optional theme overrides (defaults keep theme typography):
      - Theme can set these CSS variables if they want software UI to use a distinct font.
    */
    font-family: var(--sw-font-family, inherit);
    font-size: var(--sw-font-size, inherit);
    line-height: var(--sw-line-height, inherit);
}

/* Reusable sw-layout wrapper for software widgets inside a theme-owned narrow column. */
.sw-layout.sw-layout--flush {
    --sw-layout-pad: 0;
}

/* Software layout typography defaults (scoped to sw-layout only).
   html body beats theme rules like `body h2 { font-size: clamp(...) }`
   so calendar/cart/blog titles stay module-sized. Page chrome h1 stays on the theme. */
.sw-layout h1,
.sw-layout h2,
.sw-layout h3,
.sw-layout h4,
.sw-layout h5,
.sw-layout h6 {
    margin: 0;
    color: inherit;
}
.sw-layout h1 {
    font-size: var(--sw-h1-size, 1.25rem);
}
.sw-layout h2 {
    font-size: var(--sw-h2-size, 1rem);
}
.sw-layout h3 {
    font-size: var(--sw-h3-size, 0.9375rem);
}
html body .sw-layout h1,
html body .sw-layout h2,
html body .sw-layout h3,
html body .sw-layout h4,
html body .sw-layout h5,
html body .sw-layout h6 {
    margin: 0;
    letter-spacing: normal;
}
html body .sw-layout h1,
html body .sw-layout h2,
html body .sw-layout h3 {
    font-family: var(--sw-heading-font-family, var(--sw-font-family, inherit));
}
html body .sw-layout h1 {
    color: var(--sw-heading-color, inherit);
}
html body .sw-layout h2 {
    color: var(--sw-h2-color, var(--sw-heading-color, inherit));
}
html body .sw-layout h3 {
    color: var(--sw-h3-color, var(--sw-h2-color, var(--sw-heading-color, inherit)));
}
html body .sw-layout h4,
html body .sw-layout h5,
html body .sw-layout h6 {
    color: inherit;
    font-family: var(--sw-font-family, inherit);
}
html body .sw-layout h1,
html body .sw-layout h1[class] { font-size: var(--sw-h1-size, 1.25rem); }
html body .sw-layout h2,
html body .sw-layout h2[class] { font-size: var(--sw-h2-size, 1rem); }
html body .sw-layout h3,
html body .sw-layout h3[class] { font-size: var(--sw-h3-size, 0.9375rem); }

html body .sw-layout .sw-page-title,
html body .sw-layout .sw-list-item__title,
html body .sw-layout .sw-feed-card__title,
html body .sw-layout .sw-comments__title {
    color: var(--sw-heading-color, inherit);
    font-family: var(--sw-heading-font-family, var(--sw-font-family, inherit));
}

.sw-layout p {
    margin: 0 0 0.75rem;
}

/* ===================================================================
   Reusable Table Layout - Modern Div-Based (Front-End)
   ===================================================================
   Generic table layout using CSS Grid - reusable across modules
   Usage: .sw-table-container > .sw-table-header + .sw-table-row > .sw-table-col
   All columns are customizable via grid-template-columns
   =================================================================== */
.sw-table-container {
    width: 100%;
    margin-top: 10px;
}

.sw-table-header {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr; /* Override in specific modules as needed */
    gap: 6px;
    padding: 0 6px;
    border-bottom: 2px solid #ddd;
    width: 100%;
    box-sizing: border-box;
}

.sw-table-header > div {
    display: block;
    white-space: nowrap;
    overflow: hidden;
    text-overflow: ellipsis;
    box-sizing: border-box;
}

.sw-table-header h2 {
    margin: 0;
    display: inline;
}

.sw-table-row {
    display: grid;
    grid-template-columns: 2fr 1fr 1fr; /* Override in specific modules as needed */
    gap: 6px;
    padding: 0 6px;
    border-bottom: 1px solid #eee;
    align-items: start;
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
}

.sw-table-row.even {
    background-color: #FFFFFF;
}

.sw-table-row.odd {
    background-color: #EFEFEF;
}

.sw-table-col {
    display: block;
    min-width: 0;
    overflow: hidden;
}

/* Downloads-specific styling (content only, not layout) */
/* Layout uses sw-table-* classes, these are for downloads-specific content */

/* Downloads-specific column layout */
.sw-table-container.downloads-layout .sw-table-header,
.sw-table-container.downloads-layout .sw-table-row {
    grid-template-columns: 2fr 24px 24px 40px 80px 100px;
}

.downloads-product-name {
    margin: 0;
    padding-bottom: 0;
}

.downloads-list {
    margin-left: 0;
}

.downloads-item {
    margin: 0;
    display: flex;
    align-items: center;
    gap: 8px;
    flex-wrap: nowrap;
    width: 100%;
    box-sizing: border-box;
    min-width: 0;
}

.downloads-icon {
    flex-shrink: 0;
}

.downloads-file-name {
    flex: 0 1 auto;
    font-weight: 500;
    margin-right: 8px;
    min-width: 0;
    max-width: 100%;
    overflow: hidden;
    text-overflow: ellipsis;
    white-space: nowrap;
}

.downloads-count {
    min-height: 24px;
    display: flex;
    align-items: center;
}

.downloads-search-icon {
    color: #666;
    font-size: 14px;
    margin-right: 4px;
}

.downloads-download-icon {
    color: #666;
    font-size: 14px;
    text-decoration: none;
}

.downloads-download-icon:hover {
    color: #333;
}

.downloads-audio-player {
    display: inline-block;
    margin-right: 8px;
    vertical-align: middle;
    max-width: 300px;
    width: 100%;
}

.downloads-audio-controls {
    display: flex;
    align-items: center;
    gap: 6px;
    padding: 4px;
    background: #f5f5f5;
    border-radius: 4px;
}

.downloads-audio-play-pause,
.downloads-audio-mute {
    background: none;
    border: none;
    cursor: pointer;
    padding: 4px;
    font-size: 12px;
    color: #666;
}

.downloads-audio-play-pause:hover,
.downloads-audio-mute:hover {
    color: #333;
}

.downloads-audio-time {
    font-size: 11px;
    color: #666;
    min-width: 35px;
}

.downloads-audio-progress {
    flex: 1;
    height: 4px;
    cursor: pointer;
}

.sw-table-col[data-label="Downloads"] {
    text-align: left;
    grid-column: 5;
    padding-left: 0;
    margin-left: 0;
}

/* File Type Icon Colors */
.fa-file-pdf-o { color: #e53e3e; }
.fa-file-word-o { color: #2b579a; }
.fa-file-excel-o { color: #1d6f42; }
.fa-file-powerpoint-o { color: #d04423; }
.fa-file-image-o { color: #6b7280; }
.fa-file-audio-o { color: #9333ea; }
.fa-file-video-o { color: #dc2626; }
.fa-file-archive-o { color: #f59e0b; }
.fa-file-text-o { color: #374151; }
.fa-file-o { color: #6b7280; }

/* Responsive Table Layout - Mobile Only (very small screens) */
@media screen and (max-width: 480px) {
    .sw-table-header {
        display: none !important;
    }

    .sw-table-row {
        display: block !important;
        grid-template-columns: none !important;
        padding: 8px;
        margin-bottom: 8px;
        border: 1px solid #ddd;
        border-radius: 4px;
    }

    .sw-table-col {
        display: block !important;
        margin-bottom: 6px;
        width: 100% !important;
    }

    .sw-table-col:last-child {
        margin-bottom: 0;
    }

    .sw-table-col:before {
        content: attr(data-label);
        font-weight: 600;
        display: block;
        margin-bottom: 3px;
        font-size: 12px;
        color: #666;
    }

    .downloads-product-name {
        margin-bottom: 0;
        padding-bottom: 0;
    }

    .downloads-col-icon {
        display: inline-block !important;
        width: auto !important;
        margin-right: 8px;
        margin-bottom: 0;
        vertical-align: middle;
    }

    .downloads-col-icon:before {
        display: none !important;
    }

    .downloads-item {
        flex-wrap: nowrap;
        align-items: center;
        flex-direction: row;
    }

    .downloads-icon {
        flex-shrink: 0;
    }

    .downloads-file-name {
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        flex-shrink: 1;
    }

    .downloads-icon,
    .downloads-file-name,
    .downloads-audio-player {
        vertical-align: middle;
    }

    .downloads-audio-player {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin-top: 4px;
        margin-right: 0;
        display: block;
        flex: none;
    }

    .downloads-audio-controls {
        width: 100%;
        max-width: 100%;
        min-width: 0;
    }

    .downloads-audio-controls {
        width: 100%;
        max-width: 100%;
    }

    /* Stack elements properly on mobile */
    .sw-table-col[data-label="Product"] {
        display: block !important;
    }

    .sw-table-col[data-label="Product"] .downloads-item {
        width: 100%;
        display: flex;
        flex-direction: row;
        align-items: center;
        flex-wrap: nowrap;
    }

    .sw-table-col[data-label="Product"] .downloads-icon {
        flex-shrink: 0;
        margin-bottom: 0;
    }

    .sw-table-col[data-label="Product"] .downloads-file-name {
        flex: 0 1 auto;
        display: inline-block;
        margin-bottom: 0;
        white-space: nowrap;
        overflow: hidden;
        text-overflow: ellipsis;
        min-width: 0;
    }

    .sw-table-col[data-label="Product"] .downloads-audio-player {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        margin: 4px 0;
        flex: none;
    }

    .sw-table-col[data-label="Product"] .downloads-audio-controls {
        width: 100%;
        max-width: 100%;
        min-width: 0;
        box-sizing: border-box;
    }

    .sw-table-col[data-label="View"],
    .sw-table-col[data-label="Download"] {
        display: inline-flex !important;
        flex-direction: row;
        align-items: center;
        margin-bottom: 4px;
        margin-right: 8px;
    }

    .sw-table-col[data-label="View"]:before,
    .sw-table-col[data-label="Download"]:before {
        display: none !important;
    }
}

/* Tablet adjustments - keep columns but adjust spacing */
@media screen and (min-width: 481px) and (max-width: 767px) {
    .sw-table-header {
        display: grid !important;
        gap: 6px !important;
        padding: 0 6px !important;
    }

    .sw-table-row {
        display: grid !important;
        gap: 6px !important;
        padding: 0 6px !important;
    }
}

/* Ensure grid works on desktop/tablet (768px and above) */
@media screen and (min-width: 768px) {
    .sw-table-header {
        display: grid !important;
    }

    .sw-table-row {
        display: grid !important;
    }

    .sw-table-col {
        display: block !important;
    }
}

/* Header login / register token spacing */
.login_logout_group {
    display: inline-flex;
    align-items: center;
    flex-wrap: wrap;
    gap: 0.35rem;
}
.login_logout_sep {
    opacity: 0.75;
}

#header .login_logout_sep {
    color: var(--vanilla-header-text, currentColor);
}

#header_shell .vnla-header-top .login_logout_sep {
    color: var(--vanilla-text, var(--sw-surface-text, #14181f));
}

#header .login_logout_group a {
    color: var(--vanilla-header-text, inherit);
}

#header_shell .vnla-header-top .login_logout_group a {
    color: var(--vanilla-text, var(--sw-surface-text, #14181f));
}

/* ===================================================================
   Shared module UI tokens (blog, cart, LM) — themes override via --sw-*
   Catalog: docs/design-kit/LUNASOFT-THEME-SKINNING.md §2.3
   :root — site-wide (header search Go, cart badge, live chat when wired to --sw-*)
   .sw-layout — layout-only vars + padding
   Do NOT define --sw-nav-border-color / --sw-card-border-color here
   (theme must be able to set transparent; fallback is --sw-border-color).
   =================================================================== */
/* Software tokens themes may override in their :root (keep this list short):
   --sw-link          navigational text links
   --sw-accent        primary actions / selected states
   --sw-secondary     supporting non-brand icons
   --sw-heading-font-family H1-H3 family inside software layouts
   --sw-heading-color / --sw-h2-color / --sw-h3-color non-link heading colors inside software layouts
   --sw-h1-size / --sw-h2-size / --sw-h3-size software heading scale
   --sw-font-size     software body copy inside .sw-layout (Styler Body text size)
   --sw-radius        global shape
   --sw-button-radius button shape (defaults to --sw-radius)
   --sw-field-radius  field shape (defaults to --sw-radius)
   --sw-field-bg / --sw-field-text field fill and readable foreground
   --sw-field-font-size shared form-control text (theme default when unset)
   --sw-left-nav-column-bg full-height sidebar wash (Styler: left_nav_column_bg)
   --sw-left-nav-bg item boxes — categories, mini cal, RSS, cart (Styler: left_nav_bg; blank → card)
   --sw-left-nav-text / --sw-left-nav-active-* normal + hover/selected colors
   --sw-nav-border-color left-nav item borders (Styler: left_nav_border_color; blank → general border)
   --sw-list-marker-style / --sw-list-marker-color prose list bullets (Styler Typography) */
:root {
    --sw-radius: 10px;
    /* --sw-button-radius / --sw-field-radius intentionally unset; consumers chain to --sw-radius. */
    --sw-border-color: #e3e3e3;
    --sw-border-width: 1px;
    --sw-nav-border-width: 1px;
    --sw-card-border-width: 1px;
    --sw-card-shadow: 0 1px 3px rgba(0, 0, 0, 0.08);
    --sw-h1-size: 1.25rem;
    --sw-h2-size: 1rem;
    --sw-h3-size: 0.9375rem;
    --sw-font-size: 0.9375rem;
    --sw-list-marker-style: disc;
    --sw-list-marker-color: currentColor;
    --sw-h2-color: var(--sw-heading-color, inherit);
    --sw-h3-color: var(--sw-h2-color, var(--sw-heading-color, inherit));
    /* Surface, field and text-muted tokens are set by the guarded skin_rule lines below. */
    --sw-accent: #013e7b;
    --sw-accent-contrast: #fff;
    
    --sw-link: #013e7b;
    --sw-stack-gap: 1.25rem;
    --sw-layout-pad: 1rem;
    --sw-field-min-height: 2.5rem;
    --sw-field-padding-y: 0.55rem;
    --sw-field-padding-x: 0.75rem;
    --sw-field-gap: 0.25rem;
}








/* Themeable site announcement used by lean/default theme chrome. */
.sw-site-alert {
    width: 100%;
    max-height: 0;
    overflow: hidden;
    background: var(--sw-accent, #14181f);
    color: var(--sw-accent-contrast, #fff);
    opacity: 0;
    visibility: hidden;
    transform: translateY(-0.5rem);
    transition:
        max-height 0.4s ease,
        opacity 0.3s ease,
        transform 0.3s ease,
        visibility 0s linear 0.4s;
}

.sw-site-alert.sw-site-alert--visible {
    max-height: 20rem;
    opacity: 1;
    visibility: visible;
    transform: translateY(0);
    transition-delay: 0s;
}

.sw-site-alert[hidden] {
    display: none !important;
}

.sw-site-alert__inner {
    display: flex;
    align-items: center;
    gap: 0.75rem;
    width: 100%;
    max-width: var(--sw-page-width, 72rem);
    min-width: 0;
    margin: 0 auto;
    padding: 0.65rem 1rem;
    box-sizing: border-box;
}

.sw-site-alert__message {
    flex: 1 1 auto;
    min-width: 0;
    margin: 0;
}

.sw-site-alert__action {
    flex: 0 0 auto;
    padding: 0.4rem 0.7rem;
    border: 1px solid currentColor;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px));
    color: inherit;
    text-decoration: none;
    white-space: nowrap;
}

.sw-site-alert__action:hover,
.sw-site-alert__action:focus {
    color: inherit;
    text-decoration: underline;
}

.sw-site-alert__close {
    flex: 0 0 auto;
    min-width: 2.25rem;
    min-height: 2.25rem;
    padding: 0.25rem;
    border: 0;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px));
    background: transparent;
    color: inherit;
    cursor: pointer;
    font: inherit;
    font-size: 1.25rem;
    line-height: 1;
}

.sw-site-alert__close:hover,
.sw-site-alert__close:focus {
    background: rgba(255, 255, 255, 0.14);
}

/* ===================================================================
   Content Builder slider-on-content — fade mode stack
   Add class slider-on-content--fade when Slider gear uses fade (vanilla kit does).
   slick-theme.css sets display:block on .slider-on-content .slider-image so
   display:table does not break Slick fade. Slide mode (fade:false) skips --fade.
   =================================================================== */
.slider-on-content--fade .slick-list,
.slider-on-content--fade .slick-track {
    width: 100% !important;
    height: 100% !important;
    box-sizing: border-box;
}

.slider-on-content--fade.slick-initialized .slick-track {
    position: relative;
    transform: none !important;
}

.slider-on-content--fade.slick-initialized .slick-slide.slider-image {
    position: absolute !important;
    top: 0 !important;
    left: 0 !important;
    width: 100% !important;
    height: 100% !important;
    float: none;
    display: block !important;
    background-size: cover;
    background-position: 50% 60%;
    background-repeat: no-repeat;
}

.slider-on-content--fade .slider-image {
    height: 100%;
}

.slider-on-content--fade .slick-slide > div {
    width: 100%;
    height: 100%;
}

/* Legacy promotion-bar (customer themes) — same Styler accent tokens as .sw-site-alert */
.promotion-bar {
    width: 100%;
    background-color: var(--sw-accent, #14181f);
    color: var(--sw-accent-contrast, #fff);
    position: relative;
    text-align: center;
}

.promotion-bar__content {
    padding: 0.65rem 1rem;
    font-size: inherit;
}

.promotion-bar__button {
    background-color: var(--sw-accent-contrast, #fff);
    color: var(--sw-accent, #14181f);
    padding: 0.4rem 0.85rem;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px));
    display: inline-block;
    margin: 0 0.65rem;
    font-weight: 600;
    text-decoration: none;
    border: 1px solid transparent;
}

.promotion-bar__button:hover,
.promotion-bar__button:focus {
    opacity: 0.85;
    text-decoration: none;
    color: var(--sw-accent, #14181f);
    background-color: var(--sw-accent-contrast, #fff);
}

.promotion-bar__close:hover,
.promotion-bar__close:focus {
    opacity: 0.85;
    text-decoration: none;
    color: var(--sw-accent-contrast, #fff);
}

.promotion-bar__close {
    display: block;
    width: 2rem;
    height: 2rem;
    font-size: 1rem;
    position: absolute;
    right: 0.65rem;
    top: 50%;
    transform: translateY(-50%);
    color: inherit;
}

/* Shared responsive shell for the CMS first-time popup. */
#cms_pop_win.sw-popup {
    max-width: calc(100vw - 2rem);
    max-height: calc(100vh - 2rem);
    padding: 0.85rem;
    border: var(--sw-card-border-width, 1px) solid var(--sw-border-color, #e3e3e3);
    border-radius: var(--sw-radius, 10px);
    box-sizing: border-box;
    overflow: auto;
    background: var(--sw-surface-bg, #fff);
    color: var(--sw-surface-text, #222);
    box-shadow: var(--sw-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.08));
}

.sw-popup__close-row {
    display: flex;
    justify-content: flex-end;
    margin-bottom: 0.5rem;
}

.sw-popup__close {
    color: var(--sw-link, #56707d);
}

.sw-popup__body,
.sw-popup-content {
    min-width: 0;
}

/* Reusable page shell for main content with left and right regions. */
.sw-page-grid--three-column {
    display: flex;
    flex-direction: column;
    gap: var(--sw-stack-gap, 1.25rem);
    width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

.sw-page-grid--three-column > .sw-page-main,
.sw-page-grid--three-column > .sw-page-aside {
    min-width: 0;
}

.sw-page-grid--three-column > .sw-page-main {
    order: -1;
}

@media (min-width: 992px) {
    .sw-page-grid--three-column {
        display: grid;
        grid-template-columns:
            minmax(10rem, var(--sw-aside-width, 15rem))
            minmax(0, 1fr)
            minmax(10rem, var(--sw-aside-width, 15rem));
        align-items: start;
    }

    .sw-page-grid--three-column > .sw-page-main {
        order: 0;
    }
}

@media (max-width: 480px) {
    .sw-site-alert__inner {
        align-items: flex-start;
        flex-wrap: wrap;
    }

    .sw-site-alert__message {
        flex-basis: calc(100% - 3rem);
    }
}

@media (prefers-reduced-motion: reduce) {
    .sw-site-alert {
        transform: none;
        transition: none;
    }
}

/* Vertical stack spacing (blog sidebar, post lists, module columns) */
.sw-stack {
    display: flex;
    flex-direction: column;
    gap: var(--sw-stack-gap, 1.25rem);
}

/* Sidebar widget stack — one rule for blog/cart/LM left nav (see PLATFORM-DEFAULTS-LOCK.md) */
.sw-layout--sidebar > .sw-page-aside > .sw-stack,
.sw-layout--sidebar > .sw-page-aside > .sw-blog-aside.sw-stack,
.sw-layout--sidebar > .sw-page-aside > .sw-module-aside.sw-stack {
    display: flex;
    flex-direction: column;
    gap: var(--sw-stack-gap, 1.25rem);
    /* Match inner top inset of #blog.sw-layout (and other .sw-layout in main column) */
    padding-top: var(--sw-layout-pad, 1rem);
    box-sizing: border-box;
}

/* Customized regions may omit sw-stack — keep uniform block gaps */
.sw-page-aside .sw-blog-aside:not(.sw-stack) > .sw-blog-aside-block + .sw-blog-aside-block,
.sw-page-aside .sw-module-aside:not(.sw-stack) > .sw-blog-aside-block + .sw-blog-aside-block,
.sw-page-aside .sw-module-aside:not(.sw-stack) > .sw-module-aside-block + .sw-module-aside-block {
    margin-top: var(--sw-stack-gap, 1.25rem);
}

/* Only for skins that already use sw-page-aside — not HOWTO #sub .leftcol (theme owns that column). */
.sw-page-aside > h1:first-child {
    margin: 0 0 0.75rem;
    line-height: 1.3;
}

/* #sub .leftcol — software-layout sidebar (custom regions may omit sw-stack or wrap tokens in divs) */
#sub .leftcol > .sw-module-aside.sw-stack,
#sub .leftcol > .sw-blog-aside.sw-stack {
    display: flex;
    flex-direction: column;
    gap: var(--sw-stack-gap, 1.25rem);
}

#sub .leftcol .sw-module-aside:not(.sw-stack) > .sw-blog-aside-block + .sw-blog-aside-block,
#sub .leftcol .sw-blog-aside:not(.sw-stack) > .sw-blog-aside-block + .sw-blog-aside-block,
#sub .leftcol > .sw-blog-aside-block + .sw-blog-aside-block {
    margin-top: var(--sw-stack-gap, 1.25rem);
}

#sub .leftcol > * + * {
    margin-top: var(--sw-stack-gap, 1.25rem);
}

#sub .leftcol > .sw-module-aside.sw-stack > *,
#sub .leftcol > .sw-blog-aside.sw-stack > * {
    margin-top: 0;
}

/* ===================================================================
   Software layout — #sub two-column shell (default / sub_page)
   Platform owns flex, column width, padding, and mobile stack order.
   Theme tints backgrounds only; do not rely on theme ZIP for module gaps.
   =================================================================== */
/* Width, max-width and margin are left to the theme: `.container` is normally its centred
   page wrapper, and overriding them made module pages full-bleed while the rest of the site
   stayed centred. Only the flex shell is imposed here. */
#sub .container {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 1.5rem;
    padding: 0;
}

#sub .container > .clear {
    display: none;
}

@media (min-width: 768px) {
    #sub .container {
        flex-wrap: nowrap;
        padding-bottom: 2rem;
        margin-bottom: -2rem;
    }
}

#sub .container > .col,
#sub .container > .leftcol,
#sub .container > .main {
    float: none;
}

#sub .leftcol,
.sub-left,
.sub_left_col,
#left.col {
    flex: 0 0 var(--sw-aside-width, 15rem);
    width: var(--sw-aside-width, 15rem);
    max-width: 100%;
    min-width: 0;
    display: flex;
    flex-direction: column;
}

#sub .leftcol,
.sub-left,
.sub_left_col,
#left.col,
.sw-page-aside {
    align-self: stretch;
    background-color: var(--sw-left-nav-column-bg, transparent);
    box-sizing: border-box;
}

@media (min-width: 768px) {
    #sub .leftcol,
    .sub-left,
    .sub_left_col,
    #left.col {
        padding-top: var(--sw-left-nav-pad, var(--sw-layout-pad, 1rem));
        padding-left: var(--sw-left-nav-pad, var(--sw-layout-pad, 1rem));
        padding-right: var(--sw-left-nav-pad, var(--sw-layout-pad, 1rem));
        padding-bottom: 2rem;
        margin-bottom: -2rem;
    }

    #sub .leftcol > ul.subnav {
        flex: 1 1 auto;
        width: 100%;
    }
}

#sub .leftcol > *,
#sub .leftcol .sw-module-aside,
#sub .leftcol .sw-blog-aside,
#sub .leftcol .sw-shop-sidebar {
    width: 100%;
    max-width: 100%;
    min-width: 0;
    box-sizing: border-box;
}

#sub .main {
    flex: 1 1 0;
    min-width: 0;
    box-sizing: border-box;
    padding: var(--sw-layout-pad, 1rem);
    align-self: stretch;
}

@media (min-width: 768px) {
    #sub .main {
        padding-bottom: calc(var(--sw-layout-pad, 1rem) + 2rem);
        margin-bottom: -2rem;
    }
}

/* Main column carries outer inset; direct module roots flush on the top/horizontal edges. */
#sub .main > .sw-layout {
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
}

/* /login lives in #subcontent (or a theme column), not #sub .main, so the rule above
   does not reach it. Drop the software inset so the form shares the heading's left edge. */
.sw-layout.login_page {
    padding-left: 0;
    padding-right: 0;
    padding-top: 0;
}

/* Register "Sign in" is a text link, not a second button. */
.sw-layout.register_page .already_user {
    margin: 0 0 0.75rem;
}
.sw-layout.register_page .already_user a {
    display: inline;
    padding: 0;
    border: 0;
    background: none;
    border-radius: 0;
}

/* CMS / builder pages without .sw-layout — drop default h1/h2/h3 top margin so the first
   heading lines up with #sub .leftcol (same inset as module list/detail pages).
   Content builder wraps titles in .secondary_container > .ctb-row > .ctb-column. */
#sub .main > h1:first-child,
#sub .main > h2:first-child,
#sub .main > h3:first-child,
#sub .main > :first-child > h1:first-child,
#sub .main > :first-child > h2:first-child,
#sub .main > :first-child > h3:first-child,
#sub .main > :first-child:not(.sw-layout) :is(h1, h2, h3):first-of-type,
#sub .main > :first-child:not(.sw-layout) {
    margin-top: 0;
}

/* Wide / three-column CMS layouts — platform owns inset (themes tint backgrounds only). */
#wide .container,
#three_column .container {
    padding: var(--sw-layout-pad, 1rem);
    box-sizing: border-box;
}

#wide_full {
    padding: var(--sw-layout-pad, 1rem);
    box-sizing: border-box;
}

#wide .container > h1:first-child,
#wide .container > h2:first-child,
#wide .container > h3:first-child,
#wide .container > :first-child > h1:first-child,
#wide .container > :first-child > h2:first-child,
#wide .container > :first-child > h3:first-child,
#wide .container > :first-child:not(.sw-layout) :is(h1, h2, h3):first-of-type,
#wide_full > h1:first-child,
#wide_full > h2:first-child,
#wide_full > h3:first-child,
#wide_full > :first-child:not(.sw-layout) :is(h1, h2, h3):first-of-type,
#three_column .container > h1:first-child,
#three_column .container > h2:first-child,
#three_column .container > h3:first-child,
#three_column .container > :first-child:not(.sw-layout) :is(h1, h2, h3):first-of-type {
    margin-top: 0;
}

/* Prose list markers — Styler Typography (--sw-list-marker-*). Nav/subnav/module lists stay list-style:none. */
#sub .main ul:not(.subnav):not([class*="sw-"]):not([class*="tab_"]),
#sub .main .ctb-column ul:not([class*="sw-"]),
#sub .main .secondary_container ul:not([class*="sw-"]),
#wide .container ul:not(.subnav):not([class*="sw-"]):not([class*="tab_"]),
#wide .container .ctb-column ul:not([class*="sw-"]),
#wide_full ul:not(.subnav):not([class*="sw-"]):not([class*="tab_"]),
#three_column .container ul:not(.subnav):not([class*="sw-"]):not([class*="tab_"]),
#three_column .sw-page-main ul:not(.subnav):not([class*="sw-"]):not([class*="tab_"]),
.sw-layout .sw-card-body > ul:not([class*="sw-"]),
.sw-layout .sw-stack > ul:not([class*="sw-"]) {
    list-style-type: var(--sw-list-marker-style, disc);
    list-style-position: outside;
}

#sub .main ul:not(.subnav):not([class*="sw-"]):not([class*="tab_"]) > li::marker,
#sub .main .ctb-column ul:not([class*="sw-"]) > li::marker,
#sub .main .secondary_container ul:not([class*="sw-"]) > li::marker,
#sub .main ol:not([class*="sw-"]) > li::marker,
#sub .main .ctb-column ol:not([class*="sw-"]) > li::marker,
#wide .container ul:not(.subnav):not([class*="sw-"]):not([class*="tab_"]) > li::marker,
#wide .container ol:not([class*="sw-"]) > li::marker,
#wide .container .ctb-column ul:not([class*="sw-"]) > li::marker,
#wide_full ul:not(.subnav):not([class*="sw-"]) > li::marker,
#wide_full ol:not([class*="sw-"]) > li::marker,
#three_column .container ul:not(.subnav):not([class*="sw-"]) > li::marker,
#three_column .container ol:not([class*="sw-"]) > li::marker,
#three_column .sw-page-main ul:not(.subnav):not([class*="sw-"]) > li::marker,
.sw-layout .sw-card-body > ul:not([class*="sw-"]) > li::marker,
.sw-layout .sw-card-body > ol:not([class*="sw-"]) > li::marker,
.sw-layout .sw-stack > ul:not([class*="sw-"]) > li::marker,
.sw-layout .sw-stack > ol:not([class*="sw-"]) > li::marker {
    color: var(--sw-list-marker-color, currentColor);
}

@media (max-width: 767px) {
    #sub .container {
        flex-direction: column;
        gap: 0.75rem;
    }

    /* Legacy hooks must be listed here too: the desktop rule pins flex/width on
       .sub-left and .sub_left_col as well, so omitting them left those sidebars 15rem
       wide on phones and pushed the page into horizontal scroll. */
    #sub .leftcol,
    .sub-left,
    .sub_left_col,
    #left.col,
    #sub .main {
        flex: 1 1 auto;
        width: 100%;
        max-width: 100%;
    }

    /* CMS / detail pages: main article before sidebar. */
    #sub .main {
        order: -1;
        padding-bottom: var(--sw-layout-pad, 1rem);
        margin-bottom: 0;
    }

    #sub .leftcol,
    .sub-left,
    .sub_left_col,
    #left.col {
        padding-bottom: 0;
        margin-bottom: 0;
        padding-left: var(--sw-left-nav-pad, var(--sw-layout-pad, 1rem));
        padding-right: var(--sw-left-nav-pad, var(--sw-layout-pad, 1rem));
    }

    /* Module list pages: main content first; sidebar cats/widgets at bottom (same as CMS detail). */
}

.inner-wrap > .row > .grid_12 > .row {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
}

.inner-wrap > .row > .grid_12 > .row > .sub_content,
.inner-wrap > .row > .grid_12 > .row > .sub_left_col {
    float: none;
}

.inner-wrap > .row > .grid_12 > .row > .sub_left_col {
    order: -1;
}

.inner-wrap .grid_3.sub_left_col {
    min-height: 0;
    align-self: stretch;
}

.sub_left_col:not(:has(> *)),
#sub .leftcol:not(:has(> *)) {
    display: none;
}

/* ===================================================================
   Shared left-nav inners (blog / cart / LM / CMS children / calendar)
   Platform owns column shell + stacked-link shape; theme tints tokens (--sw-accent, --sw-radius, colors).
   Platform owns the stacked-link shape. Hover/active use high_color.
   Do not restyle ul.subnav in blog.css / shopping_cart.css / lm-style.css / theme stylesheet.
   Nested months (blog archive) stay in blog.css.
   =================================================================== */
#sub .leftcol ul.subnav,
#sub .main ul.subnav,
#left ul.subnav,
.sw-page-aside ul.subnav,
.sw-shop-sidebar ul.subnav,
.sw-module-aside ul.subnav,
.sw-blog-aside ul.subnav,
.sw-blog-aside-block ul.subnav,
.sub-left ul.subnav,
.sub_left_col ul.subnav {
    list-style: none;
    margin: 0 !important;
    padding: 0;
}

#sub .leftcol ul.subnav li,
#sub .main ul.subnav li,
#left ul.subnav li,
.sw-page-aside ul.subnav li,
.sw-shop-sidebar ul.subnav li,
.sw-module-aside ul.subnav li,
.sw-blog-aside ul.subnav li,
.sw-blog-aside-block ul.subnav li,
.sub-left ul.subnav li,
.sub_left_col ul.subnav li {
    list-style: none;
    margin: 0;
    padding: 0;
}

#sub .leftcol ul.subnav > li > a,
#sub .main ul.subnav > li > a,
#left ul.subnav > li > a,
.sw-page-aside ul.subnav > li > a,
.sw-shop-sidebar ul.subnav > li > a,
.sw-module-aside ul.subnav > li > a,
.sw-blog-aside ul.subnav > li > a,
.sw-blog-aside-block ul.subnav > li > a,
.sub-left ul.subnav > li > a,
.sub_left_col ul.subnav > li > a {
    display: block;
    padding: 0.7rem 0.85rem;
    margin: 0;
    border: var(--sw-nav-border-width, 1px) solid var(--sw-nav-border-color, var(--sw-border-color, #e3e3e3));
    border-bottom-width: 0;
    background: var(--sw-left-nav-bg, var(--sw-surface-bg, #fff));
    color: var(--sw-left-nav-text, var(--sw-link, #56707d)) !important;
    line-height: 1.3;
    text-decoration: none;
    box-sizing: border-box;
}

#sub .leftcol ul.subnav > li:first-child > a,
#sub .main ul.subnav > li:first-child > a,
#left ul.subnav > li:first-child > a,
.sw-page-aside ul.subnav > li:first-child > a,
.sw-shop-sidebar ul.subnav > li:first-child > a,
.sw-module-aside ul.subnav > li:first-child > a,
.sw-blog-aside ul.subnav > li:first-child > a,
.sw-blog-aside-block ul.subnav > li:first-child > a,
.sub-left ul.subnav > li:first-child > a,
.sub_left_col ul.subnav > li:first-child > a {
    border-radius: var(--sw-radius, 10px) var(--sw-radius, 10px) 0 0;
}

#sub .leftcol ul.subnav > li:last-child > a,
#sub .main ul.subnav > li:last-child > a,
#left ul.subnav > li:last-child > a,
.sw-page-aside ul.subnav > li:last-child > a,
.sw-shop-sidebar ul.subnav > li:last-child > a,
.sw-module-aside ul.subnav > li:last-child > a,
.sw-blog-aside ul.subnav > li:last-child > a,
.sw-blog-aside-block ul.subnav > li:last-child > a,
.sub-left ul.subnav > li:last-child > a,
.sub_left_col ul.subnav > li:last-child > a {
    border-bottom-width: var(--sw-nav-border-width, 1px);
    border-radius: 0 0 var(--sw-radius, 10px) var(--sw-radius, 10px);
}

#sub .leftcol ul.subnav > li:only-child > a,
#sub .main ul.subnav > li:only-child > a,
#left ul.subnav > li:only-child > a,
.sw-page-aside ul.subnav > li:only-child > a,
.sw-shop-sidebar ul.subnav > li:only-child > a,
.sw-module-aside ul.subnav > li:only-child > a,
.sw-blog-aside ul.subnav > li:only-child > a,
.sw-blog-aside-block ul.subnav > li:only-child > a,
.sub-left ul.subnav > li:only-child > a,
.sub_left_col ul.subnav > li:only-child > a {
    border-bottom-width: var(--sw-nav-border-width, 1px);
    border-radius: var(--sw-radius, 10px);
}

#sub .leftcol ul.subnav > li > a:hover,
#sub .leftcol ul.subnav > li.active > a,
#sub .leftcol ul.subnav > li > a.active,
#sub .main ul.subnav > li > a:hover,
#sub .main ul.subnav > li.active > a,
#sub .main ul.subnav > li > a.active,
#left ul.subnav > li > a:hover,
#left ul.subnav > li.active > a,
.sw-page-aside ul.subnav > li > a:hover,
.sw-page-aside ul.subnav > li.active > a,
.sw-shop-sidebar ul.subnav > li > a:hover,
.sw-shop-sidebar ul.subnav > li.active > a,
.sw-module-aside ul.subnav > li > a:hover,
.sw-blog-aside ul.subnav > li > a:hover,
.sw-module-aside ul.subnav > li.active > a,
.sw-blog-aside ul.subnav > li.active > a,
.sw-blog-aside-block ul.subnav > li > a:hover,
.sw-blog-aside-block ul.subnav > li.active > a,
.sub-left ul.subnav > li > a:hover,
.sub-left ul.subnav > li.active > a,
.sub_left_col ul.subnav > li > a:hover,
.sub_left_col ul.subnav > li.active > a,
.sub_left_col ul.subnav > li > a.active {
    background: var(--sw-left-nav-active-bg, var(--sw-accent, #14181f));
    border-color: var(--sw-left-nav-active-bg, var(--sw-accent, #14181f));
    color: var(--sw-left-nav-active-text, var(--sw-accent-contrast, #fff)) !important;
    text-decoration: none;
}

/* Nested subnav (CMS page tree, LM categories) — same Styler hover/active tokens as top level */
#sub .leftcol ul.subnav ul.subnav > li > a:hover,
#sub .leftcol ul.subnav ul.subnav > li.active > a,
#sub .leftcol ul.subnav ul.subnav > li > a.active,
#sub .leftcol ul.subnav ul.subnav ul.subnav > li > a:hover,
#sub .leftcol ul.subnav ul.subnav ul.subnav > li.active > a,
#sub .leftcol ul.subnav ul.subnav ul.subnav > li > a.active,
#sub .leftcol ul.subnav ul.subnav ul.subnav ul.subnav > li > a:hover,
#sub .leftcol ul.subnav ul.subnav ul.subnav ul.subnav > li.active > a,
#sub .leftcol ul.subnav ul.subnav ul.subnav ul.subnav > li > a.active,
#sub .main ul.subnav ul.subnav > li > a:hover,
#sub .main ul.subnav ul.subnav > li.active > a,
#left ul.subnav ul.subnav > li > a:hover,
#left ul.subnav ul.subnav > li.active > a,
#left ul.subnav ul.subnav ul.subnav > li > a:hover,
#left ul.subnav ul.subnav ul.subnav > li.active > a,
.sw-page-aside ul.subnav ul.subnav > li > a:hover,
.sw-page-aside ul.subnav ul.subnav > li.active > a,
.sw-module-aside ul.subnav ul.subnav > li > a:hover,
.sw-module-aside ul.subnav ul.subnav > li.active > a,
.sw-blog-aside ul.subnav ul.subnav > li > a:hover,
.sw-blog-aside ul.subnav ul.subnav > li.active > a,
.sw-blog-aside-block ul.subnav ul.subnav > li > a:hover,
.sw-blog-aside-block ul.subnav ul.subnav > li.active > a,
.sub-left ul.subnav ul.subnav > li > a:hover,
.sub-left ul.subnav ul.subnav > li.active > a,
.sub_left_col ul.subnav ul.subnav > li > a:hover,
.sub_left_col ul.subnav ul.subnav > li.active > a,
.sub_left_col ul.subnav ul.subnav > li > a.active {
    background: var(--sw-left-nav-active-bg, var(--sw-accent, #14181f));
    border-color: var(--sw-left-nav-active-bg, var(--sw-accent, #14181f));
    color: var(--sw-left-nav-active-text, var(--sw-accent-contrast, #fff)) !important;
    text-decoration: none;
}

/* Nested cats (blog / cart / LM) — indent, stay in the same stack */
#sub .leftcol ul.subnav ul.subnav > li > a,
#sub .main ul.subnav ul.subnav > li > a,
#left ul.subnav ul.subnav > li > a,
.sw-page-aside ul.subnav ul.subnav > li > a,
.sw-shop-sidebar ul.subnav ul.subnav > li > a,
.sw-module-aside ul.subnav ul.subnav > li > a,
.sw-blog-aside ul.subnav ul.subnav > li > a,
.sw-blog-aside-block ul.subnav ul.subnav > li > a,
.sub-left ul.subnav ul.subnav > li > a,
.sub_left_col ul.subnav ul.subnav > li > a {
    padding-left: 1.5rem;
    border-radius: 0;
}

#sub .leftcol ul.subnav ul.subnav > li:last-child > a,
#sub .main ul.subnav ul.subnav > li:last-child > a,
#left ul.subnav ul.subnav > li:last-child > a,
.sw-page-aside ul.subnav ul.subnav > li:last-child > a,
.sw-shop-sidebar ul.subnav ul.subnav > li:last-child > a,
.sw-module-aside ul.subnav ul.subnav > li:last-child > a,
.sw-blog-aside ul.subnav ul.subnav > li:last-child > a,
.sw-blog-aside-block ul.subnav ul.subnav > li:last-child > a,
.sub-left ul.subnav ul.subnav > li:last-child > a,
.sub_left_col ul.subnav ul.subnav > li:last-child > a {
    border-bottom-width: 0;
}

#sub .leftcol ul.subnav > li:last-child ul.subnav > li:last-child > a,
#sub .main ul.subnav > li:last-child ul.subnav > li:last-child > a,
#left ul.subnav > li:last-child ul.subnav > li:last-child > a,
.sw-page-aside ul.subnav > li:last-child ul.subnav > li:last-child > a,
.sw-shop-sidebar ul.subnav > li:last-child ul.subnav > li:last-child > a,
.sw-module-aside ul.subnav > li:last-child ul.subnav > li:last-child > a,
.sw-blog-aside ul.subnav > li:last-child ul.subnav > li:last-child > a,
.sw-blog-aside-block ul.subnav > li:last-child ul.subnav > li:last-child > a,
.sub-left ul.subnav > li:last-child ul.subnav > li:last-child > a,
.sub_left_col ul.subnav > li:last-child ul.subnav > li:last-child > a {
    border-bottom-width: var(--sw-nav-border-width, 1px);
    border-radius: 0 0 var(--sw-radius, 10px) var(--sw-radius, 10px);
}

/* CMS page tree — nested depth cues + active trail vs current leaf (platform software layout).
   PHP marks ancestors and current page .active; ancestors get accent wash, leaf gets full fill. */
#sub .leftcol > ul.subnav ul.subnav {
    margin: 0.15rem 0 0.15rem 0.55rem;
    padding: 0;
    border-left: 2px solid color-mix(in srgb, var(--sw-left-nav-text, #56707d) 14%, transparent);
}

#sub .leftcol > ul.subnav ul.subnav ul.subnav {
    margin-left: 0.5rem;
    border-left-color: color-mix(in srgb, var(--sw-left-nav-text, #56707d) 20%, transparent);
}

#sub .leftcol > ul.subnav ul.subnav ul.subnav ul.subnav {
    margin-left: 0.45rem;
    border-left-color: color-mix(in srgb, var(--sw-left-nav-text, #56707d) 26%, transparent);
}

#sub .leftcol > ul.subnav ul.subnav > li > a {
    padding-left: 1.15rem;
}

#sub .leftcol > ul.subnav ul.subnav ul.subnav > li > a {
    padding-left: 1.45rem;
}

#sub .leftcol > ul.subnav ul.subnav ul.subnav ul.subnav > li > a {
    padding-left: 1.75rem;
}

#sub .leftcol > ul.subnav ul.subnav ul.subnav ul.subnav ul.subnav > li > a {
    padding-left: 2.05rem;
}

#sub .leftcol > ul.subnav > li:not(:last-child) ul.subnav a {
    border-radius: 0;
}

#sub .leftcol > ul.subnav > li:not(:last-child) ul.subnav > li:last-child > a {
    border-bottom-width: 0;
    border-radius: 0;
}

/* CMS page-tree (#sub .leftcol > ul.subnav) — filled column on --sw-left-nav-column-bg.
   Module asides (.sw-module-aside ul.subnav) keep boxed cards above. */
#sub .leftcol > ul.subnav > li > a,
#sub .leftcol > ul.subnav ul.subnav > li > a {
    border: 0 !important;
    border-radius: 0 !important;
    background: transparent !important;
    color: var(--sw-left-nav-text, var(--sw-link, #56707d)) !important;
    -webkit-transition: background-color 0.15s ease, color 0.15s ease;
    transition: background-color 0.15s ease, color 0.15s ease;
}

#sub .leftcol > ul.subnav > li > a {
    font-weight: 600;
}

#sub .leftcol > ul.subnav ul.subnav > li > a {
    font-weight: 500;
    padding-top: 0.55rem;
    padding-bottom: 0.55rem;
}

#sub .leftcol > ul.subnav ul.subnav > li:not(.active) > a {
    background: color-mix(in srgb, var(--sw-left-nav-text, #222) 5%, var(--sw-left-nav-column-bg, #fff)) !important;
    color: var(--sw-left-nav-text, var(--sw-link, #56707d)) !important;
    border-color: transparent;
}

#sub .leftcol > ul.subnav ul.subnav ul.subnav > li:not(.active) > a {
    background: color-mix(in srgb, var(--sw-left-nav-text, #222) 8%, var(--sw-left-nav-column-bg, #fff)) !important;
}

#sub .leftcol > ul.subnav ul.subnav ul.subnav ul.subnav > li:not(.active) > a {
    background: color-mix(in srgb, var(--sw-left-nav-text, #222) 11%, var(--sw-left-nav-column-bg, #fff)) !important;
}

#sub .leftcol > ul.subnav > li:not(.active) > a:hover,
#sub .leftcol > ul.subnav ul.subnav > li:not(.active) > a:hover,
#sub .leftcol > ul.subnav ul.subnav ul.subnav > li:not(.active) > a:hover,
#sub .leftcol > ul.subnav ul.subnav ul.subnav ul.subnav > li:not(.active) > a:hover {
    background: color-mix(in srgb, var(--sw-left-nav-text, #222) 12%, var(--sw-left-nav-column-bg, #fff)) !important;
    color: var(--sw-left-nav-text, var(--sw-link, #56707d)) !important;
    border-color: transparent !important;
    text-decoration: none;
}

/* Active ancestors (branch open) — wash + accent text; hover deepens wash */
#sub .leftcol > ul.subnav li.active:has(ul.subnav li.active) > a.active,
#sub .leftcol > ul.subnav li.active:has(ul.subnav li.active) > a {
    background: color-mix(in srgb, var(--sw-left-nav-active-bg, var(--sw-accent, #14181f)) 12%, var(--sw-left-nav-column-bg, #fff)) !important;
    box-shadow: inset 2px 0 0 var(--sw-left-nav-active-bg, var(--sw-accent, #14181f));
    color: var(--sw-left-nav-active-bg, var(--sw-accent, #14181f)) !important;
    border-color: transparent !important;
    font-weight: 600;
    text-decoration: none;
}

#sub .leftcol > ul.subnav li.active:has(ul.subnav li.active) > a.active:hover,
#sub .leftcol > ul.subnav li.active:has(ul.subnav li.active) > a:hover {
    background: color-mix(in srgb, var(--sw-left-nav-active-bg, var(--sw-accent, #14181f)) 24%, var(--sw-left-nav-column-bg, #fff)) !important;
    color: var(--sw-left-nav-active-bg, var(--sw-accent, #14181f)) !important;
    text-decoration: none;
}

/* Current page (leaf) — full accent pill */
#sub .leftcol > ul.subnav li.active:not(:has(ul.subnav li.active)) > a.active,
#sub .leftcol > ul.subnav li.active:not(:has(ul.subnav li.active)) > a {
    background: var(--sw-left-nav-active-bg, var(--sw-accent, #14181f)) !important;
    border-color: transparent !important;
    color: var(--sw-left-nav-active-text, var(--sw-accent-contrast, #fff)) !important;
    border-radius: var(--sw-radius, 10px) !important;
    margin: 0.1rem 0;
    font-weight: 600;
    text-decoration: none;
}

#sub .leftcol > ul.subnav li.active:not(:has(ul.subnav li.active)) > a.active:hover,
#sub .leftcol > ul.subnav li.active:not(:has(ul.subnav li.active)) > a:hover {
    opacity: 0.92;
    text-decoration: none;
}

/* Software widgets that sit outside .sw-layout (calendar aside) still honor --sw-font-family.
   Header / footer / top nav / site search stay on theme body font — do not set font-family there. */
.sw-mini-cal,
.sw-cal-upcoming {
    font-family: var(--sw-font-family, inherit);
}

html body .sw-mini-cal h1,
html body .sw-cal-upcoming h1 {
    color: var(--sw-heading-color, inherit);
}
html body .sw-mini-cal h2,
html body .sw-cal-upcoming h2 {
    color: var(--sw-h2-color, var(--sw-heading-color, inherit));
}
html body .sw-mini-cal h3,
html body .sw-cal-upcoming h3 {
    color: var(--sw-h3-color, var(--sw-h2-color, var(--sw-heading-color, inherit)));
}
html body .sw-mini-cal h1,
html body .sw-mini-cal h2,
html body .sw-mini-cal h3,
html body .sw-cal-upcoming h1,
html body .sw-cal-upcoming h2,
html body .sw-cal-upcoming h3 {
    font-family: var(--sw-heading-font-family, var(--sw-font-family, inherit));
}

/* Mini calendar — blog left nav + calendar module #left-cal
   Edit these .sw-mini-cal rules only; both widgets share them. */
.sw-mini-cal.sw-card {
    margin: 0;
    padding: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.sw-mini-cal .sw-card-body {
    padding: 0.65rem 0.75rem;
}

.sw-mini-cal__title,
.sw-mini-cal .sw-mini-cal__title h2 {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    font-weight: 700;
    text-align: center;
    margin: 0;
    padding: 0;
    line-height: 1.3;
    font-size: inherit;
    border: none;
    border-bottom: none;
    text-decoration: none;
    background: none;
    box-shadow: none;
}

.sw-mini-cal__controls,
.sw-mini-cal .controls {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: justify;
    -ms-flex-pack: justify;
    justify-content: space-between;
    gap: 0.35rem;
    position: static;
    padding: 0 0 0.45rem;
    text-align: center;
}

html body .sw-mini-cal a.sw-mini-cal__prev,
html body .sw-mini-cal a.sw-mini-cal__next,
html body .sw-mini-cal__controls .sw-mini-cal__prev,
html body .sw-mini-cal__controls .sw-mini-cal__next,
html body .sw-mini-cal .controls .prev,
html body .sw-mini-cal .controls .next {
    position: static;
    top: auto;
    left: auto;
    right: auto;
    padding: 0.15rem 0.4rem;
    text-decoration: none !important;
    line-height: 1;
    color: var(--sw-left-nav-text, var(--sw-surface-text, #222)) !important;
}

.sw-mini-cal .grid,
.sw-mini-cal .sw-mini-cal__grid-wrap > .grid {
    display: grid;
    grid-template-columns: repeat(7, 1fr);
    width: 100%;
    max-width: 100%;
    margin: 0;
    gap: 2px;
    float: none;
    overflow: visible;
    border: none;
}

.sw-mini-cal .day {
    float: none;
    width: auto;
    height: auto;
    min-height: 1.75rem;
    display: flex;
    align-items: center;
    justify-content: center;
    font-size: 0.75rem;
    padding: 0.2rem;
    box-sizing: border-box;
    border: none;
    background: transparent;
}

.sw-mini-cal .day.name {
    font-size: 0.65rem;
    font-weight: 600;
    min-height: 1.25rem;
    opacity: 0.85;
}

html body .sw-mini-cal .day,
html body .sw-mini-cal .day.name {
    color: var(--sw-left-nav-text, var(--sw-surface-text, #222));
}

/* Day numbers follow the left-nav text token. Highlights use --sw-accent below. */
html body .sw-mini-cal .day a {
    color: var(--sw-left-nav-text, var(--sw-surface-text, #222)) !important;
    text-decoration: none !important;
    font-weight: 600;
}

/* Selected / today — 1×1 mark. Use --sw-radius (0 = square). Never 50% — that ignores the token. */
.sw-mini-cal .sw-mini-cal__selected,
.sw-mini-cal .today.highlight,
.sw-mini-cal .day.highlight {
    background: transparent;
    border-radius: 0;
}

.sw-mini-cal .sw-mini-cal__selected a,
.sw-mini-cal .today.highlight a,
.sw-mini-cal .day.highlight a {
    display: -webkit-inline-box;
    display: -ms-inline-flexbox;
    display: inline-flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 1.55rem;
    height: 1.55rem;
    border-radius: var(--sw-radius, 0px) !important;
    box-sizing: border-box;
}

.sw-mini-cal .sw-mini-cal__selected a {
    background: var(--sw-surface-subtler, #ececec);
    color: var(--sw-surface-text, #222) !important;
}

html body .sw-mini-cal .today.highlight a,
html body .sw-mini-cal .day.highlight a {
    background: var(--sw-accent, #14181f);
    color: var(--sw-accent-contrast, #fff) !important;
}

.sw-mini-cal .grid .spacer {
    display: none;
}

.sw-mini-cal__nav {
    display: flex;
    justify-content: space-between;
    align-items: center;
    gap: 0.5rem;
    margin-top: 0.65rem;
}

.sw-mini-cal__nav a {
    text-decoration: none;
    font-weight: 600;
}

/* Shared comment cards — blog + LM (same chrome; theme tints via --sw-*) */
.sw-comments {
    display: flex;
    flex-direction: column;
    gap: var(--sw-stack-gap, 1.25rem);
    margin: 1.5rem 0 0;
}

.sw-comments__title {
    margin: 0;
    line-height: 1.3;
    font-weight: 700;
}

.sw-comments__head {
    display: flex;
    flex-wrap: wrap;
    align-items: baseline;
    justify-content: space-between;
    gap: 0.35rem 1rem;
}

.sw-comments__login {
    margin: 0;
    line-height: 1.4;
}

.listing_detail_col_1 > .sw-comments {
    margin-top: 0.85rem;
}

.sw-comments__login-sep {
    margin: 0 0.35rem;
    opacity: 0.55;
}

.sw-comment-card {
    margin: 0;
    background: transparent;
    border: 1px solid var(--sw-border-color, #e3e3e3);
    border-radius: var(--sw-radius, 10px);
    padding: 0.75rem 0.85rem;
    box-sizing: border-box;
}

.sw-comments > .sw-comment-card:nth-child(even),
.listing_mgr-comments .sw-comment-card:nth-child(even),
.listing_mgr-priv_comments .sw-comment-card:nth-child(even) {
    background: color-mix(in srgb, var(--sw-surface-text, #222) 8%, #fff);
}

/* Comment form shells reuse .sw-card markup but are not Card background. */
html body .sw-layout .sw-comments > .sw-card {
    background: transparent;
    box-shadow: none;
}

.sw-comment-card__row {
    display: flex;
    gap: 0.75rem;
    align-items: flex-start;
}

.sw-comment-card__image {
    flex: 0 0 auto;
}

.sw-comment-card__image img {
    display: block;
    max-width: 3rem;
    height: auto;
    border-radius: var(--sw-radius, 10px);
}

.sw-comment-card__body {
    flex: 1 1 auto;
    min-width: 0;
}

.sw-comment-card__name {
    font-weight: 700;
    line-height: 1.3;
}

.sw-comment-card__time {
    margin: 0.15rem 0 0.4rem;
    line-height: 1.3;
}

.sw-comment-card__text {
    margin: 0;
    line-height: 1.45;
    color: var(--sw-surface-text, inherit);
}

.sw-comment-card__text p {
    margin: 0;
}

/* Section label above a card list (e.g. archive month heading before post cards) */
.sw-layout h2.blogh2 {
    margin: 0 0 var(--sw-stack-gap, 1.25rem);
    line-height: 1.3;
}

.sw-card {
    background: var(--sw-surface-bg, #fff);
    border: var(--sw-card-border-width, 1px) solid var(--sw-card-border-color, var(--sw-border-color, #e3e3e3));
    border-radius: var(--sw-radius, 10px);
    box-shadow: var(--sw-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.08));
    box-sizing: border-box;
}

/* Responsive semantic table. Keep the older .sw-table-container grid primitive
   for div-based tables; use this pair when the source markup is a real table. */
.sw-table-wrapper {
    width: 100%;
    max-width: 100%;
    overflow-x: auto;
    -webkit-overflow-scrolling: touch;
}

.sw-table {
    width: 100%;
    min-width: 30rem;
    border-collapse: collapse;
    background: var(--sw-surface-bg, #fff);
}

.sw-table th,
.sw-table td {
    padding: 0.6rem 0.75rem;
    text-align: left;
    border-bottom: 1px solid var(--sw-border-color, #e3e3e3);
    vertical-align: top;
}

.sw-table tbody td {
    color: var(--sw-surface-text, inherit);
}

.sw-table thead th {
    background: var(--sw-surface-subtler, #f5f5f5);
    font-weight: 600;
}

.sw-table tbody tr:nth-child(even) {
    background: var(--sw-surface-subtle, #fafafa);
}

.sw-table tbody tr:hover {
    background: var(--sw-surface-subtler, #f5f5f5);
}

/* Parent columns often set color: white (city left rail). Cards stay readable. */
html body .sw-layout .sw-card {
    color: var(--sw-surface-text, #222);
}

/* Left-rail widgets follow left-nav, not card fill (same family as category lists). */
html body .sw-layout .sw-mini-cal,
html body .sw-layout .sw-cal-upcoming,
html body .sw-layout .sw-mini-cal.sw-card,
html body .sw-layout .sw-cal-upcoming.sw-card,
html body .sw-layout.sw-shop-minicart,
html body .sw-layout .sw-shop-minicart {
    background: var(--sw-left-nav-bg, var(--sw-surface-bg, #fff));
    color: var(--sw-left-nav-text, var(--sw-surface-text, #222));
}

html body .sw-layout .sw-shop-minicart__item {
    background: transparent;
}

html body .sw-layout .sw-shop-minicart__item:nth-child(even) {
    background: transparent;
}

html body .sw-layout .sw-blog-comment-card.sw-card {
    background: transparent;
}

/* Search shells — not Card background (affiliate directory + forum toolbar). */
html body .sw-affiliate-search-card.sw-card,
html body .sw-affiliate-directory .sw-affiliate-search-card.sw-card {
    background: transparent;
    box-shadow: none;
}

html body .sw-affiliate-search-input {
    background: var(--sw-field-bg, #fff);
    color: var(--sw-field-text, #222);
}

html body .sw-forum .sw-list-toolbar--surface,
html body .sw-forum .sw-forum-toolbar,
html body .sw-forum .forum_search_form {
    background: transparent;
}

.sw-card-body {
    padding: 0.75rem;
}

/* Shared list cards (blog summary + cart PLP list + calendar events) */
.sw-list-item.sw-card {
    overflow: hidden;
}

html body .sw-list-item.sw-card,
html body .sw-list-item.sw-card.odd,
html body .sw-list-item.sw-card.even {
    border: var(--sw-card-border-width, 1px) solid var(--sw-card-border-color, var(--sw-border-color, #d0d0d0));
    background: var(--sw-surface-bg, #fff);
    background-color: var(--sw-surface-bg, #fff);
    border-radius: var(--sw-radius, 10px);
    box-shadow: var(--sw-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.08));
}

.sw-stack > .sw-list-item.sw-card {
    margin: 0;
}

.sw-list-item__inner {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: start;
    -ms-flex-align: start;
    align-items: flex-start;
    gap: 0.75rem;
    padding: 0.75rem 0.85rem;
    box-sizing: border-box;
}

/* Shop list PLP keeps CSS grid (thumb | body / cta) — not flex list-item inner. */
html body .sw-shop-pl.sw-layout .sw-shop-pl-list-item__inner.sw-list-item__inner {
    display: -ms-grid !important;
    display: grid !important;
    padding: 10px 0;
    gap: 0 12px;
}

.sw-list-item__inner > .sw-list-item__media {
    -webkit-box-flex: 0;
    -ms-flex: 0 0 160px;
    flex: 0 0 160px;
    width: 160px;
    max-width: 42%;
    overflow: hidden;
    border-radius: var(--sw-radius, 10px);
    background: var(--sw-surface-subtler, #fafafa);
    box-sizing: border-box;
}

/* Shop list PLP uses its own grid thumb column — not the shared flex media slot. */
.sw-shop-pl-list-item .sw-list-item__inner > .sw-list-item__media {
    -webkit-box-flex: unset;
    -ms-flex: unset;
    flex: unset;
    width: auto;
    max-width: 160px;
    background: transparent;
}

.sw-list-item__inner > .sw-list-item__media a {
    display: block;
    line-height: 0;
}

.sw-list-item:not(.sw-shop-pl-list-item) .sw-list-item__inner > .sw-list-item__media img {
    display: block;
    width: 100%;
    max-width: 100%;
    height: 120px;
    object-fit: cover;
}

.sw-list-item:not(.sw-shop-pl-list-item) .sw-list-item__inner > .sw-list-item__media .sw-list-item__media-ph {
    display: block;
    min-height: 120px;
    line-height: 0;
    background: var(--sw-surface-subtler, #f5f5f5);
}

.sw-list-item__inner > .sw-list-item__media--square {
    -ms-flex: 0 0 7.5rem;
    flex: 0 0 7.5rem;
    width: 7.5rem;
}

.sw-list-item__inner > .sw-list-item__media--square img {
    height: 7.5rem;
}

/* Title + date/category list — author archives (no card chrome) */
.sw-stack--entries {
    gap: 1.75rem;
    margin-top: var(--sw-stack-gap, 1.25rem);
}

.sw-layout .sw-stack--entries > article > h2 {
    margin: 0 0 0.25rem;
    line-height: 1.3;
    font-weight: 700;
    font-size: unset;
}

.sw-stack--entries .sw-list-item__meta {
    margin: 0;
}

.sw-list-item__inner > .sw-list-item__body {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 auto;
    flex: 1 1 auto;
    min-width: 0;
}

.sw-list-item__title {
    margin: 0 0 0.5rem;
    line-height: 1.3;
    font-weight: 700;
}

.sw-layout .sw-list-item__title a,
.sw-layout .sw-list-item__title a:hover {
    color: var(--sw-link, #56707d) !important;
}

.sw-layout .sw-list-item__title a {
    text-decoration: none;
}

.sw-layout .sw-list-item__title a:hover {
    text-decoration: underline;
}

html body .sw-layout .sw-list-item__title,
html body .sw-layout h2.sw-list-item__title {
    margin: 0 0 0.35rem;
    font-size: 1rem;
    line-height: 1.3;
    font-weight: 700;
    font-family: var(--sw-heading-font-family, var(--sw-font-family, inherit));
    letter-spacing: normal;
}

html body .sw-layout h1.sw-list-item__title {
    font-size: var(--sw-h1-size, 1.25rem);
}

html body .sw-layout h2.sw-list-item__title {
    font-size: var(--sw-h2-size, 1rem);
}

html body .sw-layout h3.sw-list-item__title {
    font-size: var(--sw-h3-size, 0.9375rem);
}

/* Author/profile names in cards may stay on theme heading size */
.sw-layout .sw-list-item__body > h1 {
    font-size: inherit;
    margin: 0 0 0.5rem;
}

.sw-list-item__media {
    min-width: 0;
}

.sw-list-item__meta {
    display: flex;
    flex-wrap: wrap;
    align-items: center;
    gap: 0.35rem 1rem;
    margin: 0.45rem 0 0;
    line-height: 1.4;
}

.sw-list-item__meta-item {
    display: inline-flex;
    align-items: center;
    gap: 0.35rem;
    color: var(--sw-text-muted, #666);
}

.sw-list-item__meta-item .fa {
    color: var(--sw-secondary, #382933) !important;
    opacity: 0.75;
}

.sw-list-item__side {
    flex: 0 0 auto;
    display: flex;
    flex-direction: column;
    align-items: flex-end;
    gap: 0.4rem;
    min-width: 0;
}

.sw-list-item__desc {
    margin: 0;
    color: var(--sw-text-muted, #666);
    font-size: inherit;
    line-height: 1.45;
}

/* Mobile: stack list cards (calendar-style). Shop list stays horizontal. */
@media (max-width: 640px) {
    .sw-list-item:not(.sw-shop-pl-list-item) .sw-list-item__inner {
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

    .sw-list-item:not(.sw-shop-pl-list-item) .sw-list-item__inner > .sw-list-item__media {
        -ms-flex: 0 0 100%;
        flex: 0 0 100%;
        width: 100%;
        max-width: none;
    }

    .sw-list-item:not(.sw-shop-pl-list-item) .sw-list-item__inner > .sw-list-item__media img,
    .sw-list-item:not(.sw-shop-pl-list-item) .sw-list-item__inner > .sw-list-item__media .sw-list-item__media-ph {
        height: 10rem;
        min-height: 10rem;
    }

    .sw-list-item:not(.sw-shop-pl-list-item) .sw-list-item__side {
        -webkit-box-align: start;
        -ms-flex-align: start;
        align-items: flex-start;
        width: 100%;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }
}

.sw-pill {
    display: inline-flex;
    align-items: center;
    padding: 0.15rem 0.6rem;
    border-radius: var(--sw-radius, 10px);
    font-size: 0.8em;
    font-weight: 600;
    border: 1px solid var(--sw-border-color, #e3e3e3);
    background: var(--sw-surface-subtle, #fafafa);
    color: inherit;
    line-height: 1.3;
}

/* Pastel same-hue chips (calendar categories). Themes may override. */
.sw-pill--violet {
    background: #eee6ff;
    border-color: #d4c4f5;
    color: #5b3cc4;
}

.sw-pill--sky {
    background: #e4f1ff;
    border-color: #b9d6f5;
    color: #1d5aa8;
}

.sw-pill--amber {
    background: #fff0d9;
    border-color: #f0d4a0;
    color: #a35b00;
}

.sw-pill--mint {
    background: #e3f7ed;
    border-color: #b6e3c9;
    color: #1b7a4a;
}

.sw-pill--rose {
    background: #fde8f0;
    border-color: #f2c4d4;
    color: #b4235a;
}

.sw-pill--teal {
    background: #dff6f4;
    border-color: #b4e0dc;
    color: #0f6e6a;
}

/* Shared pager — boxed page numbers (blog list + cart toolbar) */
.sw-pager {
    display: inline-flex;
    flex-wrap: wrap;
    align-items: center;
    justify-content: flex-end;
    gap: 0.35rem;
    vertical-align: middle;
}

.sw-pager .pager_page,
.sw-pager a.pager_page {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2rem;
    min-height: 2rem;
    padding: 0 0.35rem;
    box-sizing: border-box;
    border: var(--sw-border-width, 1px) solid var(--sw-border-color, #e3e3e3);
    border-radius: var(--sw-radius, 10px);
    text-decoration: none;
    font-weight: 500;
    line-height: 1.2;
    background: var(--sw-surface-bg, #fff);
    color: var(--sw-surface-text, inherit);
}

.sw-pager .pager_page:hover,
.sw-pager a.pager_page:hover {
    background: var(--sw-surface-subtler, #fafafa);
    color: var(--sw-surface-text, inherit);
}

.sw-pager .pager_selected,
.sw-pager a.pager_selected {
    font-weight: 600;
    background: var(--sw-accent, #14181f);
    border-color: var(--sw-accent, #14181f);
    color: var(--sw-accent-contrast, #fff);
}

.sw-pager .pager_dots {
    padding: 0 0.15rem;
    opacity: 0.75;
}

.pager.sw-pager,
.sw-pager.first,
.sw-pager.last,
.sw-shop-toolbar__pager.sw-pager {
    display: flex;
    width: 100%;
}

.pager.sw-pager,
.sw-pager.first {
    margin: 0 0 1rem;
}

.pager.sw-pager.last,
.sw-pager.last {
    margin-top: 1rem;
    margin-bottom: 0;
}

/* Collection toolbar — shared search, filters, sorting, view controls and pager. */
.sw-list-toolbar {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 0.75rem;
    margin: 0 0 var(--sw-stack-gap, 1.25rem);
    box-sizing: border-box;
}

.sw-list-toolbar--surface {
    width: 100%;
    max-width: 100%;
    padding: 0.65rem;
    border: var(--sw-border-width, 1px) solid var(--sw-border-color, #e3e3e3);
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px));
    background: var(--sw-surface-subtler, #f5f5f5);
}

#sub .main > .sw-list-toolbar--surface {
    padding: 0.65rem;
    box-sizing: border-box;
}

.sw-list-toolbar > .sw-global_small_search,
.sw-list-toolbar > .sw-blog-main-search,
.sw-list-toolbar > .sw-list-toolbar__primary,
.sw-list-toolbar > form {
    -webkit-box-flex: 1;
    -ms-flex: 1 1 12rem;
    flex: 1 1 12rem;
    min-width: 0;
    width: auto;
    max-width: none;
    margin: 0;
}

.sw-list-toolbar > .sw-list-toolbar__actions {
    flex: 0 1 auto;
    width: auto;
}

.sw-list-toolbar__meta {
    flex: 0 0 auto;
    font-weight: 500;
    white-space: nowrap;
}

.sw-list-toolbar > .pager.sw-pager,
.sw-list-toolbar > .sw-pager,
.sw-list-toolbar > .sw-pager.first {
    -webkit-box-flex: 0;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
    width: auto;
    margin: 0;
    -webkit-box-pack: end;
    -ms-flex-pack: end;
    justify-content: flex-end;
}

.sw-list-toolbar__actions {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 0.5rem 0.85rem;
    -webkit-box-flex: 0;
    -ms-flex: 0 1 auto;
    flex: 0 1 auto;
}

.sw-list-toolbar__group {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -ms-flex-wrap: wrap;
    flex-wrap: wrap;
    gap: 0.3rem 0.45rem;
}

.sw-list-toolbar__group--views {
    display: inline-flex;
    flex-wrap: nowrap;
    width: auto;
    min-width: 0;
    gap: 0;
    overflow: hidden;
    border: var(--sw-border-width, 1px) solid var(--sw-border-color, #e3e3e3);
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px));
    background: transparent;
}

.sw-list-toolbar__group--views > a {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 2.25rem;
    min-height: 2.25rem;
    padding: 0.35rem 0.55rem;
    border-right: var(--sw-border-width, 1px) solid var(--sw-border-color, #e3e3e3);
    border-radius: 0;
    color: inherit;
    text-decoration: none;
    box-sizing: border-box;
}

.sw-list-toolbar__group--views > a:last-child {
    border-right: 0;
}

.sw-list-toolbar__group--views > a.selected,
.sw-list-toolbar__group--views > a.highlight,
.sw-list-toolbar__group--views > a[aria-current="page"],
.sw-list-toolbar__group--views > a[aria-current="true"] {
    background: var(--sw-accent, #14181f);
    color: var(--sw-accent-contrast, #fff) !important;
}

.sw-list-toolbar__group--views > a:not(.selected):not(.highlight):not([aria-current="page"]):not([aria-current="true"]) .fa {
    color: var(--sw-secondary, #382933) !important;
}

.sw-list-toolbar__group--views > a.selected .fa,
.sw-list-toolbar__group--views > a.highlight .fa,
.sw-list-toolbar__group--views > a[aria-current="page"] .fa,
.sw-list-toolbar__group--views > a[aria-current="true"] .fa {
    color: inherit !important;
}

.sw-list-toolbar__group:not(.sw-list-toolbar__group--views) a.selected:not(.sw-btn),
.sw-list-toolbar__group:not(.sw-list-toolbar__group--views) a.primary_color:not(.sw-btn) {
    padding: 0.2rem 0.5rem;
    border-radius: var(--sw-radius, 10px);
    text-decoration: none;
}

.sw-list-toolbar__icon {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    padding: 0.2rem;
    background: none;
    border: none;
    color: inherit;
    text-decoration: none;
    line-height: 1;
}

.sw-list-toolbar__icon.highlight,
.sw-list-toolbar__icon.highlight .fa {
    background: none;
    color: var(--sw-secondary, #382933);
}

.sw-list-toolbar__icon:hover {
    color: var(--sw-secondary, #382933);
}

@media (max-width: 640px) {
    .sw-list-toolbar--surface {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        gap: var(--sw-field-gap, 0.5rem);
    }

    .sw-list-toolbar > .sw-global_small_search,
    .sw-list-toolbar > .sw-blog-main-search,
    .sw-list-toolbar > .sw-list-toolbar__primary,
    .sw-list-toolbar > form,
    .sw-list-toolbar > .pager.sw-pager,
    .sw-list-toolbar > .sw-pager,
    .sw-list-toolbar--surface > .sw-global_small_search,
    .sw-list-toolbar--surface > .sw-blog-main-search,
    .sw-list-toolbar--surface > .sw-list-toolbar__primary,
    .sw-list-toolbar--surface > form,
    .sw-list-toolbar--surface > .pager.sw-pager,
    .sw-list-toolbar--surface > .sw-pager,
    .sw-list-toolbar__actions {
        -ms-flex: 1 1 100%;
        flex: 1 1 100%;
        width: 100%;
        max-width: 100%;
    }

    .sw-list-toolbar--surface > form,
    .sw-list-toolbar--surface > .sw-list-toolbar__primary {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
        gap: var(--sw-field-gap, 0.5rem);
    }

    .sw-list-toolbar--surface .sw-field-input,
    .sw-list-toolbar--surface .sw-select,
    .sw-list-toolbar--surface input[type="text"]:not(.txtsearch),
    .sw-list-toolbar--surface input[type="search"],
    .sw-list-toolbar--surface select,
    .sw-list-toolbar--surface .sw-btn:not(.sw-list-toolbar__icon),
    .sw-list-toolbar--surface button:not(.sw-list-toolbar__icon):not([type="submit"]) {
        width: 100%;
        max-width: 100%;
        box-sizing: border-box;
    }

    .sw-list-toolbar--surface .sw-global_small_search,
    .sw-list-toolbar--surface .sw-blog-main-search {
        width: 100%;
        max-width: 100%;
    }

    .sw-list-toolbar--surface .sw-list-toolbar__actions {
        -webkit-box-orient: vertical;
        -webkit-box-direction: normal;
        -ms-flex-direction: column;
        flex-direction: column;
        -webkit-box-align: stretch;
        -ms-flex-align: stretch;
        align-items: stretch;
    }

    /* Pager is not a toolbar field row — keep page links horizontal. */
    .sw-list-toolbar--surface .sw-list-toolbar__actions.sw-pager,
    .sw-list-toolbar--surface .sw-shop-toolbar__pager {
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        -webkit-box-pack: end;
        -ms-flex-pack: end;
        justify-content: flex-end;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
    }

    .sw-list-toolbar--surface .sw-list-toolbar__group--views,
    .sw-list-toolbar--surface .sw-list-toolbar__group--sort {
        width: 100%;
        max-width: 100%;
    }
}

/* Mobile compact list toolbars: keyword row + Filters expander (realtor-style). */
@media (max-width: 767px) {
    .sw-list-toolbar__filters-toggle {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: none;
        white-space: nowrap;
    }

    .sw-list-toolbar__filters-toggle .fa {
        margin-right: 0.35rem;
    }

    /* Calendar: collapsed = keyword + Filters only; expanded = full search form. */
    .sw-list-toolbar--cal:not(.is-filters-expanded) form.calendar_search {
        display: -webkit-box !important;
        display: -ms-flexbox !important;
        display: flex !important;
        -webkit-box-orient: horizontal !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: row !important;
        flex-direction: row !important;
        -ms-flex-wrap: nowrap !important;
        flex-wrap: nowrap !important;
        -webkit-box-align: center !important;
        -ms-flex-align: center !important;
        align-items: center !important;
        gap: var(--sw-field-gap, 0.5rem);
        width: 100%;
        max-width: 100%;
        overflow: hidden;
        box-sizing: border-box;
    }

    .sw-list-toolbar--cal:not(.is-filters-expanded) form.calendar_search select,
    .sw-list-toolbar--cal:not(.is-filters-expanded) form.calendar_search input:not([name="keyword"]),
    .sw-list-toolbar--cal:not(.is-filters-expanded) form.calendar_search button[type="submit"] {
        display: none !important;
    }

    .sw-list-toolbar--cal:not(.is-filters-expanded) form.calendar_search input[name="keyword"] {
        -webkit-box-flex: 1 !important;
        -ms-flex: 1 1 auto !important;
        flex: 1 1 auto !important;
        min-width: 0 !important;
        width: auto !important;
        max-width: none !important;
    }

    .sw-list-toolbar--cal:not(.is-filters-expanded) .sw-list-toolbar__filters-toggle {
        width: auto !important;
        max-width: none !important;
        -webkit-box-flex: 0 !important;
        -ms-flex: 0 0 auto !important;
        flex: 0 0 auto !important;
    }

    .sw-list-toolbar--cal.is-filters-expanded > form.calendar_search {
        -webkit-box-orient: vertical !important;
        -webkit-box-direction: normal !important;
        -ms-flex-direction: column !important;
        flex-direction: column !important;
        -webkit-box-align: stretch !important;
        -ms-flex-align: stretch !important;
        align-items: stretch !important;
    }

    .sw-list-toolbar--cal .sw-list-toolbar__group--miles {
        display: none;
    }

    .sw-list-toolbar--cal.is-filters-expanded .sw-list-toolbar__group--miles {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    .sw-list-toolbar--cal.is-filters-expanded form.calendar_search .sw-list-toolbar__filters-toggle {
        -webkit-box-ordinal-group: 100;
        -ms-flex-order: 99;
        order: 99;
        -ms-flex-item-align: stretch;
        align-self: stretch;
    }

    /* Blog: mobile search at top of main; sidebar copy hidden on phones. */
    #sub .leftcol .sw-blog-search-block,
    #sub .leftcol .sw-blog-aside-block.sw-blog-search-block {
        display: none !important;
    }

    .sw-blog-search--main-mobile {
        display: block;
    }

    .sw-blog-search-toolbar--mobile-only {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
    }

    /* Shop results toolbar: search row, then meta + sort/views, pager below products area. */
    #results .sw-shop-toolbar.sw-list-toolbar--surface {
        padding: 0.5rem;
        gap: 0.35rem;
    }

    #results .sw-shop-search--main-mobile {
        margin-bottom: 0;
    }

    #results .sw-shop-toolbar .sw-list-toolbar__primary {
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-wrap: wrap;
        flex-wrap: wrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 0.35rem 0.5rem;
        width: 100%;
        max-width: 100%;
    }

    #results .sw-shop-toolbar .sw-list-toolbar__meta {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        font-size: 0.875rem;
        width: auto;
        max-width: none;
    }

    #results .sw-shop-toolbar .right.sw-list-toolbar__actions,
    #results .sw-shop-toolbar form#top_bar {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
        min-width: 0;
        display: -webkit-box;
        display: -ms-flexbox;
        display: flex;
        -webkit-box-orient: horizontal;
        -webkit-box-direction: normal;
        -ms-flex-direction: row;
        flex-direction: row;
        -ms-flex-wrap: nowrap;
        flex-wrap: nowrap;
        -webkit-box-align: center;
        -ms-flex-align: center;
        align-items: center;
        gap: 0.35rem;
        width: auto;
        max-width: none;
    }

    #results .sw-shop-toolbar form#top_bar .sw-select {
        -webkit-box-flex: 1;
        -ms-flex: 1 1 auto;
        flex: 1 1 auto;
        min-width: 0;
        width: auto;
        max-width: none;
    }

    #results .sw-shop-toolbar form#top_bar .sw-list-toolbar__group--views {
        -webkit-box-flex: 0;
        -ms-flex: 0 0 auto;
        flex: 0 0 auto;
        width: auto;
        max-width: none;
    }

    #results .sw-shop-toolbar form#top_bar select[name="pp"],
    #results .sw-shop-toolbar form#top_bar .sw-pager {
        display: none;
    }
}

@media (min-width: 768px) {
    .sw-list-toolbar__filters-toggle {
        display: none !important;
    }

    .sw-blog-search--main-mobile,
    .sw-blog-search-toolbar--mobile-only {
        display: none !important;
    }
}

.sw-card-header {
    padding: 0.65rem 0.85rem;
    font-weight: 700;
    line-height: 1.3;
    border-bottom: 1px solid var(--sw-border-color, #e3e3e3);
}

.sw-page-title {
    margin: 0 0 var(--sw-stack-gap, 1.25rem);
    line-height: 1.2;
}

/* Header cart token (#shopping_cart{cartlink icon_count}#) — slim icon + round badge + Cart */
html body a.sw-cart-link {
    display: inline-flex;
    flex-direction: column;
    align-items: center;
    justify-content: center;
    gap: 0.12rem;
    min-width: 2.1rem;
    padding: 0.05rem 0.2rem;
    text-decoration: none;
    color: inherit;
    line-height: 1;
    vertical-align: middle;
}

html body a.sw-cart-link .sw-cart-link__icon {
    position: relative;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 1.35rem;
    height: 1.35rem;
    border: none;
    background: none;
    color: inherit;
    line-height: 1;
}

html body a.sw-cart-link .sw-cart-link__svg {
    display: block;
    width: 1.35rem;
    height: 1.35rem;
}

/* Perfect circle — beat theme header span padding that stretched this into a pill */
html body a.sw-cart-link .sw-cart-link__count,
html body a.sw-cart-link #cart_item_count {
    position: absolute;
    top: -0.28rem;
    right: -0.32rem;
    display: flex;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    width: 16px;
    height: 16px;
    min-width: 16px;
    max-width: 16px;
    padding: 0 !important;
    margin: 0;
    border: none;
    border-radius: 50% !important;
    background: var(--sw-accent, #e67e22);
    color: var(--sw-accent-contrast, #fff);
    font-size: 10px !important;
    font-weight: 700;
    line-height: 16px !important;
    text-align: center;
    overflow: hidden;
}

html body a.sw-cart-link .sw-cart-link__count:empty,
html body a.sw-cart-link .sw-cart-link__count[data-count="0"] {
    display: none;
}

html body a.sw-cart-link .sw-cart-link__label {
    font-size: 0.7rem;
    font-weight: 700;
    letter-spacing: 0.01em;
    line-height: 1;
}

html body a.sw-cart-link .sw-cart-link__total {
    font-size: 0.65rem;
    font-weight: 600;
    font-variant-numeric: tabular-nums;
    letter-spacing: 0;
    line-height: 1.1;
    white-space: nowrap;
}

html body a.sw-cart-link.sw-cart-link--price {
    flex-direction: row;
    gap: 0.35rem;
    min-width: 0;
}

/* Shared feed grid + cards (blog / cart / LM tokens) — twig/sw/feed_*.html */
.sw-feed-grid {
    display: grid;
    grid-template-columns: 1fr;
    gap: 1.25rem;
    width: 100%;
    margin: 0;
    box-sizing: border-box;
}

.sw-feed-grid--compact {
    grid-template-columns: 1fr;
}

@media (min-width: 576px) {
    .sw-feed-grid--cols-2,
    .sw-feed-grid--cols-3,
    .sw-feed-grid--cols-4 {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

@media (min-width: 992px) {
    .sw-feed-grid--compact {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
    .sw-feed-grid--cols-3 {
        grid-template-columns: repeat(3, minmax(0, 1fr));
    }
    .sw-feed-grid--cols-4 {
        grid-template-columns: repeat(4, minmax(0, 1fr));
    }
}

/* PLP / any feed that should grow with width (4, 6+). Caps stay on --cols-3 / --cols-4. */
.sw-feed-grid--auto {
    grid-template-columns: repeat(auto-fill, minmax(14rem, 1fr));
}

@media (max-width: 575px) {
    .sw-feed-grid--auto {
        grid-template-columns: repeat(2, minmax(0, 1fr));
    }
}

.sw-feed-card {
    display: flex;
    flex-direction: column;
    height: 100%;
    margin: 0;
    padding: 0;
    overflow: hidden;
    box-shadow: var(--sw-card-shadow, 0 1px 3px rgba(0, 0, 0, 0.08));
}

.sw-feed-card__media {
    display: block;
    width: 100%;
    height: 10rem;
    overflow: hidden;
    background: var(--sw-surface-subtler, #f5f5f5);
    border-bottom: 1px solid var(--sw-border-color, #e3e3e3);
}

.sw-feed-card__media a {
    display: block;
    height: 100%;
}

.sw-feed-card__media img {
    display: block;
    width: 100%;
    height: 100%;
    object-fit: cover;
}

.sw-feed-card__body {
    display: flex;
    flex-direction: column;
    flex: 1 1 auto;
    gap: 0.35rem;
    padding: 0.75rem;
}

.sw-feed-card__meta {
    margin: 0;
    color: var(--sw-text-muted, #666);
    font-size: 0.85rem;
    line-height: 1.35;
}

.sw-feed-card__title {
    margin: 0;
    font-size: var(--sw-h3-size, 1.05rem);
    font-weight: 700;
    line-height: 1.3;
}

.sw-feed-card__title a {
    color: var(--sw-link, #56707d) !important;
    text-decoration: none;
}

.sw-feed-card__title a:hover {
    color: var(--sw-link, #56707d) !important;
    text-decoration: underline;
}

.sw-feed-card__price {
    margin: 0;
    color: var(--sw-text-muted, #666);
    font-size: 0.95rem;
}

.sw-feed-card__price-was {
    text-decoration: line-through;
    margin-right: 0.35rem;
    opacity: 0.85;
}

.sw-feed-card__price-now {
    font-weight: 600;
    color: inherit;
}

.sw-feed-card__excerpt {
    color: var(--sw-text-muted, #666);
    font-size: 0.95rem;
    line-height: 1.45;
    margin: 0;
    flex: 1 1 auto;
}

.sw-feed-card__footer {
    margin-top: auto;
    padding-top: 0.5rem;
}

.sw-feed-card__cart-form {
    margin: 0;
}

.sw-btn {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    gap: 0.35rem;
    padding: 0.5rem 0.9rem;
    border: 1px solid var(--sw-border-color, #e3e3e3);
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px));
    background: transparent;
    color: inherit;
    font: inherit;
    font-size: 0.9rem;
    font-weight: 600;
    line-height: 1.2;
    text-decoration: none;
    cursor: pointer;
    box-sizing: border-box;
}

.sw-btn-primary {
    background: var(--sw-accent, #14181f);
    border-color: var(--sw-accent, #14181f);
    color: var(--sw-accent-contrast, #fff);
}

.sw-btn-primary:hover {
    opacity: 0.92;
}

/* High specificity is intentional: customer themes commonly ship .btn declarations with !important. */
html body .sw-layout .sw-btn.sw-btn-primary {
    background: var(--sw-accent, #14181f) !important;
    border-color: var(--sw-accent, #14181f) !important;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px)) !important;
    color: var(--sw-accent-contrast, #fff) !important;
}

/* Ghost controls must survive customer theme button resets and LM legacy filter-button rules. */
html body .sw-layout .sw-btn.sw-btn-ghost:not(.sw-btn-icon) {
    background: var(--sw-field-bg, var(--sw-surface-bg, #fff)) !important;
    border: 1px solid var(--sw-border-color, #e3e3e3) !important;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px)) !important;
    color: var(--sw-surface-text, inherit) !important;
}

html body .sw-layout .sw-btn.sw-btn-ghost:not(.sw-btn-icon):hover,
html body .sw-layout .sw-btn.sw-btn-ghost:not(.sw-btn-icon):focus {
    background: var(--sw-surface-subtler, #fafafa) !important;
    color: var(--sw-surface-text, inherit) !important;
}

/* Legacy action bridge: only software-layout buttons, never site chrome or arbitrary containers. */
html body .sw-layout a.primary_color.btn,
html body .sw-layout button.primary_color.btn,
html body .sw-layout input.primary_color.btn,
html body .sw-layout a.luna-btn.primary_color,
html body .sw-layout button.luna-btn.primary_color,
html body .sw-layout input.luna-btn.primary_color,
html body .sw-layout a.luna-btn.primary_color.btn,
html body .sw-layout button.luna-btn.primary_color.btn,
html body .sw-layout input.luna-btn.primary_color.btn {
    background: var(--sw-accent, #14181f) !important;
    border-color: var(--sw-accent, #14181f) !important;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px)) !important;
    color: var(--sw-accent-contrast, #fff) !important;
}

/* Navigational and prose links use one token; brand controls and action buttons retain their own colors. */
html body .sw-layout a.sw-link:not(.sw-btn):not(.btn):not(.primary_color):not(.luna-btn):not(.sw-cart-link):not(.sw-share-x):not(.twitter-share-button):not(.social_item):not([class*="addthis_button_"]),
html body .sw-layout .sw-prose a:not(.sw-btn):not(.btn):not(.primary_color):not(.luna-btn):not(.sw-cart-link):not(.sw-share-x):not(.twitter-share-button):not(.social_item):not([class*="addthis_button_"]),
html body .sw-layout p a:not(.sw-btn):not(.btn):not(.primary_color):not(.luna-btn):not(.sw-cart-link):not(.sw-share-x):not(.twitter-share-button):not(.social_item):not([class*="addthis_button_"]) {
    color: var(--sw-link, #56707d) !important;
}

html body .sw-layout a.sw-link:not(.sw-btn):not(.btn):not(.primary_color):not(.luna-btn):not(.sw-cart-link):not(.sw-share-x):not(.twitter-share-button):not(.social_item):not([class*="addthis_button_"]):hover,
html body .sw-layout .sw-prose a:not(.sw-btn):not(.btn):not(.primary_color):not(.luna-btn):not(.sw-cart-link):not(.sw-share-x):not(.twitter-share-button):not(.social_item):not([class*="addthis_button_"]):hover,
html body .sw-layout p a:not(.sw-btn):not(.btn):not(.primary_color):not(.luna-btn):not(.sw-cart-link):not(.sw-share-x):not(.twitter-share-button):not(.social_item):not([class*="addthis_button_"]):hover {
    color: var(--sw-link, #56707d) !important;
    text-decoration: underline;
}

/* X/Twitter brand share — hard-coded black/white; never Styler, theme link, or accent tokens. */
html body #sub .main a.sw-share-x,
html body #home .sw-layout a.sw-share-x,
html body .sw-layout a.sw-share-x {
    background: #000 !important;
    border-color: #000 !important;
    color: #fff !important;
    text-decoration: none !important;
}

html body #sub .main a.sw-share-x:hover,
html body #sub .main a.sw-share-x:focus,
html body #home .sw-layout a.sw-share-x:hover,
html body #home .sw-layout a.sw-share-x:focus,
html body .sw-layout a.sw-share-x:hover,
html body .sw-layout a.sw-share-x:focus {
    background: #000 !important;
    color: #fff !important;
    opacity: 0.88;
    text-decoration: none !important;
}

html body a.sw-share-x .sw-share-x__label,
html body a.sw-share-x .sw-share-x__icon {
    color: #fff !important;
}

.sw-btn-ghost {
    background: transparent;
    border-color: var(--sw-border-color, #e3e3e3);
    color: inherit;
}

.sw-btn-ghost:hover {
    background: var(--sw-surface-subtler, #fafafa);
}

.sw-btn-icon {
    padding: 0.35rem;
    min-width: 0;
    line-height: 1;
}

/* Shared storefront forms and fields — blog comments, LM contact, etc. */
.sw-form {
    display: flex;
    flex-direction: column;
    gap: 0.75rem;
}

.sw-form-row {
    display: flex;
    flex-wrap: wrap;
    gap: 0.75rem 1rem;
}

.sw-field {
    display: flex;
    flex: 1 1 200px;
    flex-direction: column;
    gap: var(--sw-field-gap, 0.25rem);
    min-width: 200px;
}

.sw-field-label {
    font-weight: 500;
}

.sw-field-description {
    color: var(--sw-text-muted, #666);
    font-size: 0.85em;
}

.sw-field-input,
.sw-field-textarea {
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
    min-height: var(--sw-field-min-height, 2.5rem);
    padding: var(--sw-field-padding-y, 0.55rem) var(--sw-field-padding-x, 0.75rem);
    border: 1px solid var(--sw-border-color, #e3e3e3);
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px));
    background: var(--sw-field-bg, var(--sw-surface-bg, #fff));
    font: inherit;
    font-size: var(--sw-field-font-size, inherit);
    color: var(--sw-field-text, var(--sw-surface-text, #222));
}

.sw-field-textarea {
    min-height: 5rem;
    resize: vertical;
}

.sw-field-input::placeholder,
.sw-field-textarea::placeholder {
    color: #888;
    opacity: 1;
}

/* Shared storefront select — LM sort, cart PLP, product options */
.sw-select {
    border: 1px solid var(--sw-border-color, #d2d2d2);
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px));
    background: var(--sw-field-bg, var(--sw-surface-bg, #fff));
    min-height: var(--sw-field-min-height, 2.5rem);
    padding: var(--sw-field-padding-y, 0.55rem) var(--sw-field-padding-x, 0.75rem);
    font: inherit;
    font-size: var(--sw-field-font-size, inherit);
    color: var(--sw-field-text, var(--sw-surface-text, #222));
    box-sizing: border-box;
    max-width: 100%;
}

.sw-form .sw-btn {
    font-size: var(--sw-field-font-size, 0.9rem);
}

.sw-field-input:focus,
.sw-field-textarea:focus,
.sw-select:focus {
    border-color: var(--sw-accent, #4a5d73);
    outline: 2px solid var(--sw-accent, #4a5d73);
    outline-offset: 2px;
}

/* Legacy standalone /login and /register controls consume the shared field
   tokens even though their PHP markup predates the sw-field-* classes. */
html body .sw-layout.login_page .login_form input[type="text"],
html body .sw-layout.login_page .login_form input[type="email"],
html body .sw-layout.login_page .login_form input[type="password"],
html body .sw-layout.login_page .login_form textarea,
html body .sw-layout.login_page .login_form select,
html body .sw-layout.register_page .register_form input[type="text"],
html body .sw-layout.register_page .register_form input[type="email"],
html body .sw-layout.register_page .register_form input[type="password"],
html body .sw-layout.register_page .register_form input[type="tel"],
html body .sw-layout.register_page .register_form input[type="number"],
html body .sw-layout.register_page .register_form input[type="date"],
html body .sw-layout.register_page .register_form textarea,
html body .sw-layout.register_page .register_form select {
    max-width: 100%;
    min-height: var(--sw-field-min-height, 2.5rem) !important;
    height: calc(1.2em + var(--sw-field-padding-y, 0.55rem) + var(--sw-field-padding-y, 0.55rem) + 2px) !important;
    padding: var(--sw-field-padding-y, 0.55rem) var(--sw-field-padding-x, 0.75rem) !important;
    border: 1px solid var(--sw-border-color, #e3e3e3) !important;
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px)) !important;
    background: var(--sw-field-bg, var(--sw-surface-bg, #fff)) !important;
    color: var(--sw-field-text, var(--sw-surface-text, #222)) !important;
    font-family: var(--sw-font-family, inherit) !important;
    font-size: var(--sw-field-font-size, inherit) !important;
    line-height: 1.2 !important;
    box-sizing: border-box;
}

html body .sw-layout.login_page .login_form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not(.captcha),
html body .sw-layout.login_page .login_form textarea,
html body .sw-layout.login_page .login_form select,
html body .sw-layout.register_page .register_form input:not([type="checkbox"]):not([type="radio"]):not([type="hidden"]):not([type="submit"]):not(.captcha),
html body .sw-layout.register_page .register_form textarea,
html body .sw-layout.register_page .register_form select {
    width: 100%;
}

html body .sw-layout.login_page .login_form textarea,
html body .sw-layout.register_page .register_form textarea {
    height: auto !important;
}

html body .sw-layout.login_page .login_form input:focus,
html body .sw-layout.login_page .login_form textarea:focus,
html body .sw-layout.login_page .login_form select:focus,
html body .sw-layout.register_page .register_form input:focus,
html body .sw-layout.register_page .register_form textarea:focus,
html body .sw-layout.register_page .register_form select:focus {
    border-color: var(--sw-accent, #4a5d73) !important;
    outline: 2px solid var(--sw-accent, #4a5d73);
    outline-offset: 2px;
}

html body .sw-layout.login_page .login_form .sw_btn button,
html body .sw-layout.register_page .register_form .sw_btn button {
    background: var(--sw-accent, #14181f) !important;
    border-color: var(--sw-accent, #14181f) !important;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px)) !important;
    color: var(--sw-accent-contrast, #fff) !important;
    font-family: var(--sw-font-family, inherit);
}

html body .sw-layout.login_page .login_form .sw_btn a,
html body .sw-layout.register_page .register_form .sw_btn a {
    border-color: var(--sw-border-color, #e3e3e3) !important;
    border-radius: var(--sw-button-radius, var(--sw-radius, 10px)) !important;
    color: var(--sw-link, inherit) !important;
}

/* Shared icon-only actions (blog favorite, LM flag/favorite) */
.sw-fav-heart,
.sw-flag-icon {
    display: inline-block;
    width: 1.1rem;
    height: 1.1rem;
    flex: 0 0 auto;
    background-color: currentColor;
    opacity: 0.75;
}

.sw-fav-heart {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M16.5 3c-1.74 0-3.41.81-4.5 2.09C10.91 3.81 9.24 3 7.5 3 4.42 3 2 5.42 2 8.5c0 3.78 3.4 6.86 8.55 11.54L12 21.35l1.45-1.32C18.6 15.36 22 12.28 22 8.5 22 5.42 19.58 3 16.5 3zm-4.4 15.55l-.1.1-.1-.1C7.14 14.24 4 11.39 4 8.5 4 6.5 5.5 5 7.5 5c1.54 0 3.04.99 3.57 2.36h1.87C13.46 5.99 14.96 5 16.5 5c2 0 3.5 1.5 3.5 3.5 0 2.89-3.14 5.74-7.9 10.05z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sw-fav-heart--active {
    opacity: 1;
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24'%3E%3Cpath fill='%23000' d='M12 21.35l-1.45-1.32C5.4 15.36 2 12.28 2 8.5 2 5.42 4.42 3 7.5 3c1.74 0 3.41.81 4.5 2.09C13.09 3.81 14.76 3 16.5 3 19.58 3 22 5.42 22 8.5c0 3.78-3.4 6.86-8.55 11.54L12 21.35z'/%3E%3C/svg%3E") center / contain no-repeat;
}

.sw-flag-icon {
    -webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.75' stroke-linejoin='miter' d='M6 21V3.5h13V13H6'/%3E%3C/svg%3E") center / contain no-repeat;
    mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none'%3E%3Cpath stroke='%23000' stroke-width='1.75' stroke-linejoin='miter' d='M6 21V3.5h13V13H6'/%3E%3C/svg%3E") center / contain no-repeat;
}

/* Header site search — same height / radius as .sw-global_small_search */
.sw-blog-search {
    display: block;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.sw-blog-search__row {
    display: flex;
    flex-wrap: nowrap;
    align-items: stretch;
    gap: 0;
    width: 100%;
    max-width: 100%;
    box-sizing: border-box;
}

.sw-blog-search__row .txtsearch {
    flex: 1 1 auto;
    min-width: 0;
    box-sizing: border-box;
    min-height: var(--sw-field-min-height, 2.5rem);
    padding: var(--sw-field-padding-y, 0.55rem) var(--sw-field-padding-x, 0.75rem);
    font-size: 0.9rem;
    line-height: 1.3;
    border: 1px solid var(--sw-border-color, #e3e3e3);
    border-right: none;
    border-radius: var(--sw-field-radius, var(--sw-radius, 10px)) 0 0 var(--sw-field-radius, var(--sw-radius, 10px));
    background: var(--sw-field-bg, var(--sw-surface-bg, #fff));
    color: var(--sw-field-text, var(--sw-surface-text, #222));
}

.sw-blog-search__go,
.sw-btn.sw-blog-search__go {
    flex: 0 0 auto;
    min-width: 2.75rem;
    min-height: var(--sw-field-min-height, 2.5rem);
    padding: 0 var(--sw-field-padding-x, 0.75rem);
    border-radius: 0 var(--sw-field-radius, var(--sw-radius, 10px)) var(--sw-field-radius, var(--sw-radius, 10px)) 0;
}

/* Sub-page sidebar column — main content first on small screens (placement, not theme chrome) */
@media (max-width: 767px) {
    .sw-layout--sidebar {
        display: flex;
        flex-direction: column;
        gap: 1.5rem;
    }

    .sw-layout--sidebar > .sw-page-main {
        order: -1;
    }
}

/*
  Default/sub_page skins often set 2 columns on .sw-layout--sidebar.
  If region_1 is empty, Twig skips <aside> and the only child (.sw-page-main)
  lands in the 15rem sidebar track — affiliates/etc. look tiny and left-stuck.
*/
@media (min-width: 768px) {
    .sw-layout.sw-layout--sidebar:not(:has(> .sw-page-aside)) {
        grid-template-columns: minmax(0, 1fr);
    }

    .sw-layout.sw-layout--sidebar:has(> .sw-page-aside) {
        grid-template-columns: minmax(12rem, 15rem) minmax(0, 1fr);
        align-items: start;
    }
}

.sw-feed-card__cta {
    display: -webkit-box;
    display: -ms-flexbox;
    display: flex;
    -webkit-box-align: center;
    -ms-flex-align: center;
    align-items: center;
    -webkit-box-pack: center;
    -ms-flex-pack: center;
    justify-content: center;
    width: 100%;
    max-width: 100%;
    height: 30px;
    min-height: 30px;
    padding: 0 1rem;
    margin: 0;
    box-sizing: border-box;
    text-align: center;
    line-height: 1.2;
}

/* Legacy theme hooks: customer skins style .primary_color.btn / .product-add-cart .btn */
#results .sw-feed-card .product-add-cart,
.sw-feed-grid .sw-feed-card .product-add-cart {
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0.35rem 0 0;
    padding: 0;
    text-align: center;
    box-sizing: border-box;
}

#results .sw-feed-card a.primary_color.btn,
#results .sw-feed-card button.primary_color.btn,
.sw-feed-grid .sw-feed-card a.primary_color.btn,
.sw-feed-grid .sw-feed-card button.primary_color.btn {
    color: var(--sw-accent-contrast, #fff) !important;
}

#results .sw-feed-card a.sw-btn-primary,
#results .sw-feed-card button.sw-btn-primary,
.sw-feed-grid .sw-feed-card a.sw-btn-primary,
.sw-feed-grid .sw-feed-card button.sw-btn-primary {
    color: var(--sw-accent-contrast, #fff);
}

/* Legacy aliases — old token/list class names map to feed card shell */
.product-list-grid,
.blog-post-list-grid,
.listing_mgr-listing-short {
    display: flex;
    flex-direction: column;
    height: 100%;
}

#results .sw-feed-grid .sw-feed-card,
.sw-feed-grid > .sw-feed-card {
    min-width: 0;
    float: none;
    width: 100%;
    max-width: 100%;
    height: auto;
    margin: 0;
    padding: 0;
    overflow: hidden;
}

/* Beat legacy tokens.css flex when old container class is still on the grid */
.sw-feed-grid.shop-product-list-grid-container,
.sw-feed-grid.blog-post-list-grid-container {
    display: grid;
    flex-wrap: unset;
    justify-content: unset;
}
