/* Defcon Defense template for Joomla 6. Original CSS; fonts are League Gothic and Source Sans Pro (both SIL OFL). */

@font-face { font-family: "LeagueGothic"; src: url("../fonts/LeagueGothic-Regular-webfont.woff") format("woff"); font-weight: normal; font-style: normal; font-display: swap; }
@font-face { font-family: "SourceSans"; src: url("../fonts/SourceSansPro-Regular-webfont.woff") format("woff"); font-weight: 400; font-style: normal; font-display: swap; }
@font-face { font-family: "SourceSans"; src: url("../fonts/SourceSansPro-It-webfont.woff") format("woff"); font-weight: 400; font-style: italic; font-display: swap; }
@font-face { font-family: "SourceSans"; src: url("../fonts/SourceSansPro-Semibold-webfont.woff") format("woff"); font-weight: 600; font-style: normal; font-display: swap; }
@font-face { font-family: "SourceSans"; src: url("../fonts/SourceSansPro-Bold-webfont.woff") format("woff"); font-weight: 700; font-style: normal; font-display: swap; }

:root {
    --gold: #996600;
    --gold-hover: #f4bc4e;
    --ink: #444;
    --head: "LeagueGothic", "Arial Narrow", Arial, Helvetica, sans-serif;
}

* { box-sizing: border-box; }
html { -webkit-text-size-adjust: 100%; }
body { margin: 0; background: #ebebeb; color: var(--ink); font: 15px/1.55 "SourceSans", Arial, Helvetica, sans-serif; }
body.frontpage { background: #000; }
img { max-width: 100%; height: auto; }
a { color: var(--gold); text-decoration: none; }
a:hover { color: var(--gold-hover); }

h1, h2, h3, h4, h5, .page-header h1, .page-header h2 { font-family: var(--head); font-weight: normal; text-transform: uppercase; color: #333; line-height: 1.05; margin: 0 0 .5em; }
h1 { font-size: 46px; color: var(--gold); letter-spacing: -.5px; }
h2 { font-size: 34px; }
h3 { font-size: 26px; }
h4 { font-size: 22px; }

.visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; border: 0; padding: 0; margin: -1px; }

/* ---------- header ---------- */
#headerwrap { background: #111; }
body.frontpage #headerwrap { background: transparent; }
#header { max-width: 1140px; margin: 0 auto; min-height: 96px; padding: 0 20px; display: flex; align-items: center; position: relative; }
#logo { flex: none; display: block; width: 54px; height: 54px; margin: 0 16px 0 0; background: url("../images/logo.png") no-repeat 0 0; }
#logo span { position: absolute; left: -9999px; }
#menu { flex: 1 1 auto; }
#menu ul { list-style: none; margin: 0; padding: 0; }
#menu > ul { display: flex; flex-wrap: wrap; align-items: center; }
#menu li { position: relative; }
#menu > ul > li { margin-right: 26px; }
#menu a { display: block; font-family: var(--head); font-weight: normal; text-transform: uppercase; color: #fff; font-size: 34px; line-height: 1; padding: 30px 0; }
#menu a:hover, #menu li:hover > a { color: var(--gold); }
#menu li.item-1611 > a { width: 64px; height: 36px; padding: 0; font-size: 0; background: url("/images/empty-cart-light64.png") no-repeat center / contain; }
#menu li.item-1611 > a:hover { opacity: .75; }
#menu .mod-menu__toggle-sub { display: none; }
#menu ul ul { display: none; position: absolute; left: 0; top: 100%; min-width: 260px; background: #000; padding: 10px 0 14px; z-index: 50; box-shadow: 0 6px 16px rgba(0,0,0,.4); }
#menu li:hover > ul { display: block; }
#menu ul ul li { margin: 0; }
#menu ul ul a { font-size: 26px; padding: 8px 24px; white-space: nowrap; }
#menu ul ul a:hover { color: var(--gold); background: #1a1a1a; }
#menu ul ul ul { left: 100%; top: -10px; }
#menubtn { display: none; }

/* ---------- page ---------- */
#page { max-width: 1140px; margin: 0 auto; }
#pagebox { display: flex; gap: 30px; align-items: flex-start; background: #fff; padding: 28px 28px 40px; margin-top: 12px; }
#pagebox.single { display: block; }
#content { min-width: 0; flex: 1 1 auto; }
#sidebar { flex: none; width: 250px; }

/* home: narrow white box on black */
#content.home { max-width: 920px; margin: 40px auto 60px; background: #fff; color: #222; padding: 48px 40px 56px; box-shadow: 0 2px 24px rgba(0,0,0,.12); border-radius: 4px; line-height: 1.65; font-size: 17px; }
#content.home h1 { color: #8a7020; font-size: 38px; line-height: 1.1; margin: 0 0 1rem; }
#content.home h2 { color: #111; font-size: 30px; margin: 2.25rem 0 .75rem; padding-bottom: .35rem; border-bottom: 1px solid #e5e5e5; }
#content.home h3 { color: #333; font-size: 24px; margin: 1.5rem 0 .4rem; }
#content.home p { margin: 0 0 1rem; color: #333; }
#content.home ul { margin: 0 0 1.25rem 1.25rem; padding: 0; color: #333; }
#content.home li { margin-bottom: .35rem; }
#content.home a { color: #8a7020; font-weight: 600; }
#content.home a:hover { color: #5c4a12; }
#content.home hr { border: 0; border-top: 1px solid #e5e5e5; margin: 2rem 0; }
#content.home blockquote { margin: 1.25rem 0; padding: 1rem 1.25rem; background: #f7f7f5; border-left: 4px solid #c4a035; color: #333; }
#content.home blockquote p { margin: 0 0 .5rem; }
#content.home .com-content-article__body > :first-child { margin-top: 0; }

/* com_content */
#content .page-header { margin: 0 0 18px; }
#content .page-header h1, #content .page-header h2, #content h1.page-title { font-size: 46px; color: var(--gold); }
#content .com-content-article__body, #content .com-content-category-blog { font-size: 15px; }
#content .com-content-article__body img { max-width: 100%; }
#content .blog-item { margin-bottom: 20px; }
#content .blog-item h2 { font-size: 30px; }
#content .blog-item h2 a { color: #333; }
#content .article-info, #content .icons { font-size: 13px; color: #888; }
#content .readmore a, #content a.btn { display: inline-block; background: var(--gold); color: #fff; font-weight: 700; font-size: 12px; padding: 7px 12px; border: 0; border-radius: 3px; }
#content .readmore a:hover, #content a.btn:hover { background: #b87d0a; color: #fff; }
#content blockquote { margin: 1rem 0; padding: .8rem 1.2rem; background: #f7f7f5; border-left: 4px solid #c4a035; }
#content table.note { background: #fcf6cf; border: 1px solid #e8d77d; margin: 0 0 20px; width: 100%; }
#content hr { border: 0; border-top: 1px solid #e5e5e5; }

/* forms and buttons */
.btn, button, input[type=submit], input[type=button] { cursor: pointer; font-family: inherit; }
.btn.btn-primary, button.btn-primary, .btn-success { background: var(--gold); border: 0; color: #fff; padding: 9px 18px; border-radius: 3px; font-weight: 700; }
.btn.btn-primary:hover, button.btn-primary:hover { background: #b87d0a; }
input[type=text], input[type=email], input[type=tel], input[type=password], input[type=number], input[type=search], textarea, select { font: inherit; padding: 8px 10px; border: 1px solid #ccc; border-radius: 3px; background: #fff; max-width: 100%; }
.control-label label, label { font-weight: 600; }
.com-contact form.well, .com-contact .contact-form form { background: #f7f7f7; border: 1px solid #e4e4e4; padding: 22px; }
.com-contact .contact-form .btn-group { margin-top: 10px; }

/* content blocks fed by modules (loaded into the Classes article) */
.moduletable.dotted > h2, .moduletable.dotted > h3 { border-bottom: 1px dotted #bbb; padding-bottom: 8px; }
#content .moduletable { margin: 0 0 24px; }
#content .moduletable > h2, #content .moduletable > h3 { font-size: 34px; color: #222; margin: 24px 0 12px; }
#content .moduletable ul.mod-articlescategory { list-style: none; margin: 0; padding: 14px 20px; background: #f6f6f6; }
#content .moduletable ul.mod-articlescategory li { padding: 7px 0; }
#content .lightbox { background: #f6f6f6; padding: 18px 20px 12px; }
#content .lightbox > h2, #content .lightbox > h3 { margin-top: 0; }
.mod-events-latest, .mod-events-latest-table { width: 100%; border-collapse: collapse; }
.mod-events-latest-table td, .mod-events-latest-table th { padding: 10px 14px; }
.mod-events-latest-table td a, .mod-events-latest-table td a.ev_link_row { color: var(--gold); font-weight: 600; }
.mod-events-latest-table tr:nth-child(even) td { background: #f3f3f3; }

/* sidebar */
#sidebar .moduletable { margin: 0 0 26px; background: #f7f7f7; padding: 18px 20px; }
#sidebar input[type=search], #sidebar input[type=text] { width: 100%; }
#sidebar .moduletable:has(.mod-finder) { background: transparent; padding: 0; }
#sidebar h2, #sidebar h3 { display: block; margin: 0 0 16px; font-size: 32px; color: #222; }
#sidebar .moduletable:has(.dd-social) { background: transparent; padding: 0; }
#sidebar .dd-social { list-style: none; display: flex; justify-content: center; margin: 0; padding: 0; }
#sidebar .dd-social li { border-left: 1px solid #ddd; }
#sidebar .dd-social li:last-child { border-right: 1px solid #ddd; }
#sidebar .dd-social a { display: block; width: 38px; height: 38px; line-height: 38px; text-align: center; color: #444; font-size: 16px; }
#sidebar .dd-social a:hover { color: var(--gold); }
#sidebar ul.mod-articlescategory { list-style: none; margin: 0; padding: 0; }
#sidebar ul.mod-articlescategory li { display: flex; flex-direction: column; padding: 0 0 14px; margin: 0 0 14px; border-bottom: 1px solid #e3e3e3; font-size: 14px; }
#sidebar ul.mod-articlescategory li > a { order: 2; font-family: var(--head); text-transform: uppercase; font-size: 22px; line-height: 1.1; color: #222; }
#sidebar ul.mod-articlescategory li > a::before { content: "\2014\00a0"; }
#sidebar .mod-articles-category-introtext { order: 1; margin: 0 0 4px; font-size: 15px; }
#sidebar .mod-articles-category-readmore { order: 3; margin: 10px 0 0; }
#sidebar .mod-articles-category-readmore a { display: inline-block; background: var(--gold); color: #fff; font-family: "SourceSans", Arial, sans-serif; font-size: 12px; font-weight: 700; text-transform: none; line-height: 1.2; padding: 8px 12px; border-radius: 3px; }
#sidebar .mod-articles-category-readmore a::before { content: none; }
#sidebar .mod-articles-category-readmore a:hover { background: #b87d0a; color: #fff; }
#sidebar .j2commerce-cart-module { font-size: 14px; }
#sidebar table.mod-events-cal, #sidebar .mod_events_monthyear { width: 100%; }

/* error page */
.errorbox { text-align: center; max-width: 520px; margin: 0 auto; padding: 10px 0 30px; }
.errorbox h1 { font-size: 64px; margin: 10px 0 18px; }
.errorbox h3 { font-size: 30px; color: #222; }
.errorlinks { margin-top: 24px; }

/* footer */
#footerwrap { background: #000; margin-top: 12px; color: #777; }
body.frontpage #footerwrap { margin-top: 0; }
#footer { max-width: 1140px; margin: 0 auto; padding: 20px 20px 24px; display: flex; gap: 30px; align-items: center; font-size: 15px; }
#footer .powered { display: flex; flex-direction: column; font-size: 12px; }
#footer .powered img { display: block; margin-top: 4px; }
#footer .copy a { color: #777; }
#footer .copy a:hover { color: #fff; }
.adminlink::before { content: "\1F527\00a0"; font-size: 12px; }

/* ---------- phones ---------- */
@media (max-width: 900px) {
    #pagebox { flex-direction: column; padding: 20px 16px 30px; }
    #sidebar { width: 100%; }
    #header { min-height: 70px; padding: 0 16px; }
    #menubtn { display: block; margin-left: auto; width: 44px; height: 40px; background: transparent; border: 0; padding: 8px; }
    #menubtn span { display: block; height: 3px; background: #fff; margin: 6px 0; }
    #menu { position: absolute; left: 0; right: 0; top: 100%; background: #000; display: none; z-index: 60; padding: 6px 16px 14px; }
    #menu.open, #menu.open-static { display: block; }
    #menu > ul { display: block; }
    #menu > ul > li { margin: 0; }
    #menu a { padding: 10px 0; font-size: 30px; }
    #menu ul ul { display: block; position: static; box-shadow: none; background: transparent; padding: 0 0 0 16px; min-width: 0; }
    #menu ul ul a { font-size: 24px; padding: 6px 0; white-space: normal; }
    #menu li.item-1611 > a { height: 34px; }
    h1, #content .page-header h1 { font-size: 36px; }
    #content.home { margin: 16px 12px 40px; padding: 28px 20px 36px; font-size: 16px; }
    #content.home h1 { font-size: 30px; }
    #footer { flex-direction: column; align-items: flex-start; }
}
