/* SWP bundle: swp-normalize */
/*! normalize.css v2.1.1 | MIT License | git.io/normalize */

/* ==========================================================================
   HTML5 display definitions
   ========================================================================== */

/**
 * Correct `block` display not defined in IE 8/9.
 */

article,
aside,
details,
figcaption,
figure,
footer,
header,
hgroup,
main,
nav,
section,
summary {
    display: block;
}

/**
 * Correct `inline-block` display not defined in IE 8/9.
 */

audio,
canvas,
video {
    display: inline-block;
}

/**
 * Prevent modern browsers from displaying `audio` without controls.
 * Remove excess height in iOS 5 devices.
 */

audio:not([controls]) {
    display: none;
    height: 0;
}

/**
 * Address styling not present in IE 8/9.
 */

[hidden] {
    display: none;
}

/* ==========================================================================
   Base
   ========================================================================== */

/**
 * 1. Prevent system color scheme's background color being used in Firefox, IE,
 *    and Opera.
 * 2. Prevent system color scheme's text color being used in Firefox, IE, and
 *    Opera.
 * 3. Set default font family to sans-serif.
 * 4. Prevent iOS text size adjust after orientation change, without disabling
 *    user zoom.
 */

html {
    background: #fff; /* 1 */
    color: #000; /* 2 */
    font-family: sans-serif; /* 3 */
    -ms-text-size-adjust: 100%; /* 4 */
    -webkit-text-size-adjust: 100%; /* 4 */
}

/**
 * Remove default margin.
 */

body {
    margin: 0;
}

/* ==========================================================================
   Links
   ========================================================================== */

/**
 * Address `outline` inconsistency between Chrome and other browsers.
 */

a:focus {
    outline: thin dotted;
}

/**
 * Improve readability when focused and also mouse hovered in all browsers.
 */

a:active,
a:hover {
    outline: 0;
}

/* ==========================================================================
   Typography
   ========================================================================== */

/**
 * Address variable `h1` font-size and margin within `section` and `article`
 * contexts in Firefox 4+, Safari 5, and Chrome.
 */

h1 {
    font-size: 2em;
    margin: 0.67em 0;
}

/**
 * Address styling not present in IE 8/9, Safari 5, and Chrome.
 */

abbr[title] {
    border-bottom: 1px dotted;
}

/**
 * Address style set to `bolder` in Firefox 4+, Safari 5, and Chrome.
 */

b,
strong {
    font-weight: bold;
}

/**
 * Address styling not present in Safari 5 and Chrome.
 */

dfn {
    font-style: italic;
}

/**
 * Address differences between Firefox and other browsers.
 */

hr {
    -moz-box-sizing: content-box;
    box-sizing: content-box;
    height: 0;
}

/**
 * Address styling not present in IE 8/9.
 */

mark {
    background: #ff0;
    color: #000;
}

/**
 * Correct font family set oddly in Safari 5 and Chrome.
 */

code,
kbd,
pre,
samp {
    font-family: monospace, serif;
    font-size: 1em;
}

/**
 * Improve readability of pre-formatted text in all browsers.
 */

pre {
    white-space: pre-wrap;
}

/**
 * Set consistent quote types.
 */

q {
    quotes: "\201C" "\201D" "\2018" "\2019";
}

/**
 * Address inconsistent and variable font size in all browsers.
 */

small {
    font-size: 80%;
}

/**
 * Prevent `sub` and `sup` affecting `line-height` in all browsers.
 */

sub,
sup {
    font-size: 75%;
    line-height: 0;
    position: relative;
    vertical-align: baseline;
}

sup {
    top: -0.5em;
}

sub {
    bottom: -0.25em;
}

/* ==========================================================================
   Embedded content
   ========================================================================== */

/**
 * Remove border when inside `a` element in IE 8/9.
 */

img {
    border: 0;
}

/**
 * Correct overflow displayed oddly in IE 9.
 */

svg:not(:root) {
    overflow: hidden;
}

/* ==========================================================================
   Figures
   ========================================================================== */

/**
 * Address margin not present in IE 8/9 and Safari 5.
 */

figure {
    margin: 0;
}

/* ==========================================================================
   Forms
   ========================================================================== */

/**
 * Define consistent border, margin, and padding.
 */

fieldset {
    border: 1px solid #c0c0c0;
    margin: 0 2px;
    padding: 0.35em 0.625em 0.75em;
}

/**
 * 1. Correct `color` not being inherited in IE 8/9.
 * 2. Remove padding so people aren't caught out if they zero out fieldsets.
 */

legend {
    border: 0; /* 1 */
    padding: 0; /* 2 */
}

/**
 * 1. Correct font family not being inherited in all browsers.
 * 2. Correct font size not being inherited in all browsers.
 * 3. Address margins set differently in Firefox 4+, Safari 5, and Chrome.
 */

button,
input,
select,
textarea {
    font-family: inherit; /* 1 */
    font-size: 100%; /* 2 */
    margin: 0; /* 3 */
}

/**
 * Address Firefox 4+ setting `line-height` on `input` using `!important` in
 * the UA stylesheet.
 */

button,
input {
    line-height: normal;
}

/**
 * Address inconsistent `text-transform` inheritance for `button` and `select`.
 * All other form control elements do not inherit `text-transform` values.
 * Correct `button` style inheritance in Chrome, Safari 5+, and IE 8+.
 * Correct `select` style inheritance in Firefox 4+ and Opera.
 */

button,
select {
    text-transform: none;
}

/**
 * 1. Avoid the WebKit bug in Android 4.0.* where (2) destroys native `audio`
 *    and `video` controls.
 * 2. Correct inability to style clickable `input` types in iOS.
 * 3. Improve usability and consistency of cursor style between image-type
 *    `input` and others.
 */

button,
html input[type="button"], /* 1 */
input[type="reset"],
input[type="submit"] {
    -webkit-appearance: button; /* 2 */
    cursor: pointer; /* 3 */
}

/**
 * Re-set default cursor for disabled elements.
 */

button[disabled],
html input[disabled] {
    cursor: default;
}

/**
 * 1. Address box sizing set to `content-box` in IE 8/9.
 * 2. Remove excess padding in IE 8/9.
 */

input[type="checkbox"],
input[type="radio"] {
    box-sizing: border-box; /* 1 */
    padding: 0; /* 2 */
}

/**
 * 1. Address `appearance` set to `searchfield` in Safari 5 and Chrome.
 * 2. Address `box-sizing` set to `border-box` in Safari 5 and Chrome
 *    (include `-moz` to future-proof).
 */

input[type="search"] {
    -webkit-appearance: textfield; /* 1 */
    -moz-box-sizing: content-box;
    -webkit-box-sizing: content-box; /* 2 */
    box-sizing: content-box;
}

/**
 * Remove inner padding and search cancel button in Safari 5 and Chrome
 * on OS X.
 */

input[type="search"]::-webkit-search-cancel-button,
input[type="search"]::-webkit-search-decoration {
    -webkit-appearance: none;
}

/**
 * Remove inner padding and border in Firefox 4+.
 */

button::-moz-focus-inner,
input::-moz-focus-inner {
    border: 0;
    padding: 0;
}

/**
 * 1. Remove default vertical scrollbar in IE 8/9.
 * 2. Improve readability and alignment in all browsers.
 */

textarea {
    overflow: auto; /* 1 */
    vertical-align: top; /* 2 */
}

/* ==========================================================================
   Tables
   ========================================================================== */

/**
 * Remove most spacing between table cells.
 */

table {
    border-collapse: collapse;
    border-spacing: 0;
}


/* SWP bundle: swp-style */
/*   
Theme Name: Tommy Johnagin — SWP 2026
Theme URI:
Description: Tommy Johnagin custom presentation powered by the 2026 SWP Framework.
Author: Scott Sandry
Author URI: https://scottsandry.com
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Version: 2026.1.284
Tags: light, two-columns, right-sidebar, fixed-width, custom-background, post-formats
*/

/* SWP Framework color system.
 * Site-specific overrides belong in style-theme.css.
 */
:root {
	--swp-color-primary: #1769aa;
	--swp-color-primary-dark: #0f4c81;
	--swp-color-primary-soft: #eaf3f9;
	--swp-color-text: #1f2933;
	--swp-color-muted: #627384;
	--swp-color-border: #c7d3dc;
	--swp-color-surface: #f3f7fa;
	--swp-color-surface-alt: #e8f0f5;
	--swp-color-footer: #eaf1f6;
	--swp-color-white: #ffffff;
	--swp-color-header: var(--swp-color-primary-soft);
	--swp-site-max-width: 1280px;
	--swp-site-gutter: 24px;
	--swp-404-background: #efefed;
	--swp-404-text: #252a2f;
	--swp-404-muted: #666b70;
	--swp-404-button-bg: #343a40;
	--swp-404-button-text: #ffffff;
	--swp-404-button-hover-bg: #1f2428;
	--swp-404-button-hover-text: #ffffff;
	--swp-404-focus: #8c9297;
}

/* Contents
 
 Global
 Header 
 Navigation
 Sidebar
 Post
 Meta
 Footer
 Misc
 Pagination
 Forms
 Comments 
 Typography
 
*/


/* Global */
/* ---------------------------------------------------------- */

body {
	margin: 0px;
	padding: 0px;
	overflow-x: hidden;
}

html {
	padding: 0px;
	margin: 0px;
}

/* Flex Grid */
.outer_wrap {
}

.inner_wrap {
	padding: 20px 0px 20px 0px;
}

.flex_10,
.flex_20,
.flex_25,
.flex_33,
.flex_40,
.flex_50,
.flex_60,
.flex_66,
.flex_75,
.flex_80,
.flex_90,
.flex_100 {
	display: inline;
	float: left;
	position: relative;
}

.push {
	margin: 1px 0px 0px 0px;
}

.flex_10 {
	width: 10%;
}

.flex_20 {
	width: 20%;
}

.flex_25 {
	width: 25%;
}

.flex_33 {
	width: 33%;
}

.flex_40 {
	width: 40%;
}

.flex_50 {
	width: 50%;
}

.flex_60 {
	width: 60%;
}

.flex_66 {
	width: 66%;
}

.flex_75 {
	width: 75%;
}

.flex_80 {
	width: 80%;
}

.flex_90 {
	width: 90%;
}

.flex_100 {
	width: 100%;
}

.flex_pad {
	padding: 10px;
}

.flex_vert_pad {
	padding: 20px 0px 20px 0px;
}

.clear {
	clear: both;
}

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

#sidebar {
	margin: 0px 0px 0px 20px;
}

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

#pages,
#archives,
#categories,
#feeds,
#sidebarmeta,
#blogroll {
	margin: 0px;
}

.sidebaritem {
	padding: 0px 0px 10px 0px;
	margin: 0px 0px 10px 0px;
	border-bottom: 1px dotted #ccc;
}

/* Post */
/* ---------------------------------------------------------- */

.postmetadata {
	padding: 0px 0px 5px 0px;
	color: var(--swp-color-muted);
	font-size: 12px;
	line-height: 18px;
	text-transform: capitalize;
	clear: both;
}

.meta {
	padding: 0px 0px 10px 0px;
}

object,
video {
	max-width: 100%;
	width: 100%;
}

.wp-caption {
	max-width: 95%;
	height: auto;
}

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

.wp-caption img,
.gallery-icon img {
	max-width: 98%;
	height: auto;
}

.content {
	padding: 30px;
}

.archive .post:not(.swp-post-card),
.blog .post:not(.swp-post-card) {
	padding: 0px 0px 50px 0px;
}

.post:not(.swp-post-card):not(.swp-content-entry),
.type-post:not(.swp-post-card):not(.swp-content-entry),
.type-page:not(.swp-post-card):not(.swp-content-entry) {
	padding: 0px 0px 10px 0px;
}

.textcenter {
	text-align: center;
}

.textleft {
	text-align: left;
}

.textright {
	text-align: right;
}

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

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

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

.attachment-post-thumbnail {
	float: left;
	min-width: inherit;
	border: 5px solid #fff;
	-moz-box-shadow: 0 0 5px #888;
	-webkit-box-shadow: 0 0 5px #888;
	box-shadow: 0 0 2px #888;
	overflow: hidden;
	margin: 0px 20px 20px 0px;
}

/* Meta */
/* ---------------------------------------------------------- */

.author {
	background: var(--swp-color-surface);
	padding: 20px 20px 0px 0px;
	margin: 0px 0px 20px 0px;
}

.author img {
	float: left;
	margin: 0px 20px 10px 0px;
}

.authorinfo h3 {
	margin: 0px 0px 10px 0px;
	padding: 0px;
}

.authorinfo p {
	margin: 0px;
	padding: 0px 0px 20px 20px;
	font-size: 12px;
}

/* Footer */
/* ---------------------------------------------------------- */

#footer {
	border-top: solid 8px var(--swp-color-primary-dark);
	margin: 0px 0px 0px 0px;
	text-align: center;
	padding: 20px;
	color: #848484;
}

.outer_footer_wrap {
}

.inner_footer_wrap {
}

/* Misc */
/* ---------------------------------------------------------- */

.sticky {
	background: url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/must-read.png") no-repeat right top;
	background-color: var(--swp-color-white);
}

.gallery-caption {
	width: 90%;
	padding: 0px;
	margin: 0 auto;
}

.bypostauthor {
}

.wp-caption-text {
	font-size: 10px;
	color: var(--swp-color-muted);
	border: 1px solid var(--swp-color-border);
	text-align: center;
	background-color: var(--swp-color-surface);
	padding: 0px;
	margin: 0px 0px 20px 0px;
	-moz-border-radius: 3px;
	-khtml-border-radius: 3px;
	-webkit-border-radius: 3px;
	border-radius: 3px;
}

.wp-caption img {
	margin: 0;
	padding: 0;
	border: 0 none;
}

.wp-caption-dd {
	font-size: 11px;
	line-height: 17px;
	padding: 0 4px 5px;
	margin: 0;
}

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

.pagenavi {
	margin: 0 auto 20px auto;
	width: 400px;
	padding: 5px;
	background: var(--swp-color-surface);
	border: 1px solid #ccc;
	-moz-box-shadow: inset 0 0 5px #fff;
	-webkit-box-shadow: inset 0 0 5px #fff;
	box-shadow: inset 0 0 5px #fff;
}

.pagenavi a {
	padding: 5px 6px 4px 6px;
	margin: 3px;
	text-decoration: none;
	color: var(--swp-color-muted);
	background-color: inherit;
}

.pagenavi a:hover {
	color: #000;
}

.pagenavi span.pages {
	padding: 5px 6px 4px 6px;
	margin: 3px;
	color: var(--swp-color-text);
	font-weight: bold;
	background-color: inherit;
}

.pagenavi span.current {
	padding: 5px 6px 4px 6px;
	margin: 3px;
	font-weight: bold;
	color: var(--swp-color-white);
	background-color: #c5d0d8;
}

/* Comments are styled in assets/css/layout-extra.css. */

/* Typography Framework */
/* ---------------------------------------------------------- */


body {
	font-family: 'Helvetica Neue', Helvetica, Arial, sans-serif;
}

.description {
	color: var(--swp-color-muted);
}

.bread-crumb {
	color: var(--swp-color-muted);
	font-size: 12px;
	margin: 0px 0px 0px 0px;
	padding: 5px 5px 5px 10px;
}

.postdate {
	text-align: right;
	padding: 30px 20px 0px 0px;
}

.postmonth {
	color: #ccc;
	font-size: 11px;
	text-transform: uppercase;
	font-weight: bolder;
	padding: 0px;
	margin: 2px 0px 0px 0px;
}

.postyear {
	color: #ccc;
	font-weight: bolder;
	font-size: 22px;
	padding: 0px;
	margin: -2px 0px 0px 0px;
}

.content-format-aside .entry,
.content-format-gallery .entry,
.content-format-link .entry,
.content-format-image .entry,
.content-format-quote .entry,
.content-format-status .entry,
.content-format-video .entry,
.content-format-audio .entry,
.content-format-chat .entry {
	padding: 15px 0px 0px 0px;
}

.content-format-aside .entry {
	padding: 10px 0px 0px 0px;
}

.content-format-link p {
	font-size: 22px;
	padding: 0px 0px 0px 0px;
}

.content-format-link p:before {
	content: 'Link: ';
	margin: 0px;
	font-weight: 600;
}

.content-format-quote blockquote {
	font-size: 22px;
	padding: 20px 10px 20px 90px;
	margin: 0px;
	background: url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/quotes.png") 10px 10px no-repeat #f3f3f3;
}

.content-format-status p:before {
	content: 'Status: ';
	margin: 0px;
	font-weight: 600;
}

.content-format-status p {
	font-size: 26px;
	margin: 0px;
	line-height: 32px;
}

.content-format-status .entry p {
	margin: 0px;
	padding: 0px 0px 0px 20px;
	text-align: left;
}

.content-format-status .entry img {
	float: left;
	text-align: center;
}

/* SWP does not use a separate visited-link color. */
a,
a:link {
	text-decoration: none;
	color: var(--swp-color-primary);
}

a:hover,
a:focus {
	text-decoration: none;
	color: var(--swp-color-primary-dark);
}

thead {
	display: table-header-group;
}

tr,
img {
	page-break-inside: avoid;
}

h2,
h3 {
	page-break-after: avoid;
}

p,
h2,
h3 {
	orphans: 3;
	widows: 3;
}

p {
	margin: 0 0 10px;
	line-height: 20px;
	font-size: 14px;
}

small {
	font-size: 85%;
}

strong {
	font-weight: bold;
}

em {
	font-style: italic;
}

.left {
	text-align: left;
}

.right {
	text-align: right;
}

.center {
	text-align: center;
}

h1,
h2,
h3,
h4,
h5,
h6 {
	margin: 10px 0;
	font-family: inherit;
	font-weight: bold;
	line-height: 20px;
	color: inherit;
	text-rendering: optimizelegibility;
}

h1,
h2,
h3 {
	line-height: 30px;
}

h1 {
}

h2 {
}

h3 {
}

h4 {
}

h5 {
}

h6 {
}

h1 small {
	font-size: 24.5px;
}

h2 small {
	font-size: 17.5px;
}

h3 small {
	font-size: 14px;
}

h4 small {
	font-size: 14px;
}

h1 a {
	text-decoration: none;
}

.headline {
	padding-bottom: 9px;
	margin: 20px 0 30px;
	border-bottom: 1px solid #eeeeee;
}

ul,
ol {
	font-size: 14px;
	color: var(--swp-color-text);
	padding: 0;
	margin: 0 0 10px 25px;
}

ul ul,
ul ol,
ol ol,
ol ul {
	margin-bottom: 0;
}

li {
	line-height: 20px;
}

dl {
	margin-bottom: 20px;
	font-size: 14px;
	line-height: 20px;
}

dt,
dd {
	line-height: 20px;
}

dt {
	font-weight: bold;
	margin-top: 10px;
}

dd {
	margin: 5px 0px 0px 20px;
}

hr {
	margin: 20px 0;
	border: 0;
	border-top: 1px solid #eeeeee;
	border-bottom: 1px solid #ffffff;
}

abbr[title],
abbr[data-original-title] {
	cursor: help;
	border-bottom: 1px dotted #999999;
}

blockquote {
	font-size: 14px;
	line-height: 22px;
	background: var(--swp-color-surface);
	border-left: 10px solid #ccc;
	margin: 20px;
	quotes: "\201C""\201D""\2018""\2019";
	padding: 20px 10px 20px 90px;
	background: url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/quotes.png") 10px 10px no-repeat #f3f3f3;
}

address {
	display: block;
	margin-bottom: 0px;
	font-style: normal;
	line-height: 20px;
}

code,
pre {
	padding: 0 3px 2px;
	font-family: Monaco, Menlo, Consolas, "Courier New", monospace;
	font-size: 12px;
	color: var(--swp-color-text);
	-webkit-border-radius: 3px;
	-moz-border-radius: 3px;
	border-radius: 3px;
}

code {
	padding: 2px 4px;
	color: #d14;
	background-color: var(--swp-color-surface);
	border: 1px solid #e1e1e8;
}

pre {
	display: block;
	padding: 9.5px;
	margin: 0 0 10px;
	font-size: 13px;
	line-height: 20px;
	word-break: break-all;
	word-wrap: break-word;
	white-space: pre-wrap;
	background-color: var(--swp-color-surface);
	border: 1px solid #ccc;
	border: 1px solid rgba(0, 0, 0, 0.15);
	-webkit-border-radius: 4px;
	-moz-border-radius: 4px;
	border-radius: 4px;
}

pre.prettyprint {
	margin-bottom: 20px;
}

pre code {
	padding: 0;
	color: inherit;
	white-space: pre;
	white-space: pre-wrap;
	background-color: transparent;
	border: 0;
}

.pre-scrollable {
	max-height: 340px;
	overflow-y: scroll;
}

table {
	max-width: 100%;
	background-color: transparent;
	border-collapse: collapse;
	border-spacing: 0;
	border: 1px solid #ccc;
}

tr,
td {
	border: 1px solid #ccc;
	padding: 5px;
}

th {
	padding: 5px;
	background-color: var(--swp-color-surface);
	border: 1px solid #ccc;
}

form {
	margin: 0 0 20px;
}

fieldset {
	padding: 0;
	margin: 0;
	border: 0;
}

legend {
	display: block;
	width: 100%;
	padding: 0;
	margin-bottom: 20px;
	font-size: 21px;
	line-height: 40px;
	color: var(--swp-color-text);
	border: 0;
	border-bottom: 1px solid #e5e5e5;
}

legend small {
	font-size: 15px;
	color: var(--swp-color-muted);
}

/* Legacy Bootstrap-era form/button rules removed in 2026.1.106.
 * Modern controls are defined centrally in assets/css/layout-extra.css.
 */


.button:focus {
	outline: thin dotted #333;
	outline: 5px auto -webkit-focus-ring-color;
	outline-offset: -2px;
}

/* ---------------- SWP Template Architecture ---------------- */
.swp-home-header {
    width: 100%;
    margin: 0;
}

.swp-home-header:empty {
    display: none;
}

.swp-splash-page,
.swp-splash-page #top,
.swp-splash {
    width: 100%;
    min-height: 100%;
}

.swp-splash {
    margin: 0;
    padding: 0;
}

.swp-bio-links__list {
    margin: 0;
    padding: 0;
    list-style: none;
}


/* ---------------- SWP Landing / Splash Page ---------------- */
body.swp-landing-page {
    min-height: 100vh;
    min-height: 100svh;
    margin: 0;
    overflow: hidden;
    background: #f7f7f7;
}

.swp-landing {
    position: relative;
    min-height: 100vh;
    min-height: 100svh;
    display: flex;
    align-items: center;
    justify-content: center;
    overflow: hidden;
    padding: 2rem 1rem;
    box-sizing: border-box;
}

.swp-landing__background {
    position: absolute;
    inset: 0;
    background-color: var(--swp-color-surface);
    background-position: center;
    background-repeat: no-repeat;
    background-size: cover;
    transform: scale(1.01);
}

.swp-landing__background::after {
    content: "";
    position: absolute;
    inset: 0;
    background: rgba(20, 30, 38, .10);
    pointer-events: none;
}

.swp-landing__content {
    position: relative;
    z-index: 1;
    width: min(92vw, 820px);
    text-align: center;
    box-sizing: border-box;
    transform: translateY(-3vh);
}

.swp-landing__inner {
    display: inline-block;
    width: min(100%, 600px);
    padding: clamp(2rem, 4vw, 3rem);
    box-sizing: border-box;
    background: rgba(255, 255, 255, .94);
    box-shadow: 0 18px 55px rgba(0, 0, 0, .18);
    -webkit-backdrop-filter: blur(4px);
    backdrop-filter: blur(4px);
}

.swp-landing__inner h1 {
    margin: 0 0 1rem;
    font-size: clamp(2.5rem, 5vw, 3.5rem);
    line-height: 1.05;
}

.swp-landing__inner h1::after {
    content: "";
    display: block;
    width: 52px;
    height: 3px;
    margin: 1.15rem auto 0;
    background: var(--swp-color-primary, #155b8f);
}

.swp-landing__body {
    max-width: 480px;
    margin: 0 auto;
    font-size: 1.05rem;
    line-height: 1.65;
}

.swp-landing__body > :first-child {
    margin-top: 0;
}

.swp-landing__body > :last-child {
    margin-bottom: 0;
}


.swp-landing__inner--plain {
    width: auto;
    max-width: min(92vw, 720px);
    padding: 0;
    background: transparent;
    box-shadow: none;
    -webkit-backdrop-filter: none;
    backdrop-filter: none;
}

.swp-landing__inner--plain h1,
.swp-landing__inner--plain .swp-landing__body {
    color: #fff;
    text-shadow: 0 2px 16px rgba(0, 0, 0, .58);
}

.swp-landing__inner--plain h1::after {
    background: rgba(255, 255, 255, .85);
}

.swp-landing__inner--plain .swp-landing__enter {
    box-shadow: 0 4px 18px rgba(0, 0, 0, .24);
}

.swp-landing__enter {
    display: inline-flex;
    align-items: center;
    justify-content: center;
    min-width: 200px;
    min-height: 52px;
    margin-top: 2rem;
    padding: .8rem 1.75rem;
    box-sizing: border-box;
    text-decoration: none;
    font-weight: 600;
    background: #222;
    color: var(--swp-color-white);
    border: 1px solid #222;
    transition: background-color .2s ease, border-color .2s ease, transform .2s ease;
}

.swp-landing__enter:hover,
.swp-landing__enter:focus {
    background: #000;
    border-color: #000;
    color: var(--swp-color-white);
    transform: translateY(-1px);
}

.swp-landing__enter:focus-visible {
    outline: 3px solid var(--swp-color-primary, #155b8f);
    outline-offset: 4px;
}

@media screen and (max-width: 782px) {
    .swp-landing {
        padding: 1rem;
    }

    .swp-landing__content {
        width: 100%;
        transform: none;
    }

    .swp-landing__inner {
        width: 100%;
        padding: 2rem 1.5rem;
    }

    .swp-landing__inner--plain {
        width: auto;
        max-width: 100%;
        padding: 0;
    }

    .swp-landing__inner h1 {
        font-size: clamp(2.25rem, 10vw, 3rem);
    }

    .swp-landing__enter {
        width: min(100%, 240px);
    }
}

@media (prefers-reduced-motion: reduce) {
    .swp-landing__enter {
        transition: none;
    }

    .swp-landing__enter:hover,
    .swp-landing__enter:focus {
        transform: none;
    }
}

:root{--swp-site-max-width:1600px;}

/* SWP bundle: swp-layout-extra */
* {
  margin: 0;
}
html, body {
  height: 100%;
}


/* ---------------- SWP Footer ---------------- */
html, body {
  min-height: 100%;
}
body {
  display: flex;
  flex-direction: column;
}
.page-wrap {
  flex: 1 0 auto;
  min-height: 0;
  margin-bottom: 0;
}
.page-wrap:after {
  content: none;
}
.site-footer {
  flex: 0 0 auto;
  width: 100%;
  min-height: 100px;
  background: var(--swp-color-footer);
  box-sizing: border-box;
}
.swp-site-container {
  width: 100%;
  max-width: var(--swp-site-max-width, 1280px);
  margin: 0 auto;
  padding-left: var(--swp-site-gutter, 24px);
  padding-right: var(--swp-site-gutter, 24px);
  box-sizing: border-box;
}
.swp-footer-container {
  padding-top: 32px;
  padding-bottom: 20px;
}
.swp-footer-intro {
  max-width: 980px;
  margin: 0 auto 28px;
  text-align: center;
}
.swp-footer-intro > :first-child { margin-top: 0; }
.swp-footer-intro > :last-child { margin-bottom: 0; }
.swp-footer-intro-widget > :first-child { margin-top: 0; }
.swp-footer-intro-widget > :last-child { margin-bottom: 0; }
.swp-footer-widgets {
  display: grid;
  gap: 28px;
  margin-bottom: 28px;
}
.swp-footer-widgets--1 {
  grid-template-columns: minmax(0, 1fr);
  justify-content: stretch;
}
.swp-footer-widgets--2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}
.swp-footer-widgets--3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
  max-width: 1080px;
  margin-left: auto;
  margin-right: auto;
}
.swp-footer-widgets--4 {
  grid-template-columns: repeat(4, minmax(0, 1fr));
}
.swp-footer-widget-area {
  min-width: 0;
}
.swp-footer-widget-area > :first-child {
  margin-top: 0;
}
.swp-footer-widget-area > :last-child {
  margin-bottom: 0;
}

.swp-footer-widget-area .widget,
.swp-footer-widget-area .widget_block {
  margin: 0;
}

.swp-footer-widget-area .widget-title,
.swp-footer-widget-area h2,
.swp-footer-widget-area h3 {
  margin: 0 0 12px;
  color: var(--swp-color-text);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .045em;
  line-height: 1.25;
  text-transform: uppercase;
}

/* Widget navigation lists are intentionally flat rather than default-theme
 * bulleted lists. Semantic list markup is retained without visual bullets
 * or browser-style indentation. */
.swp-footer-widget-area ul,
.swp-footer-widget-area ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.swp-footer-widget-area li {
  margin: 0;
  padding: 0;
}

.swp-footer-widget-area li + li {
  margin-top: 0;
}

.swp-footer-widget-area li > a {
  display: inline-block;
  padding: 3px 0;
  color: var(--swp-color-primary);
  line-height: 1.4;
  text-decoration: none;
}

.swp-footer-widget-area li > a:hover,
.swp-footer-widget-area li > a:focus {
  color: var(--swp-color-primary-dark);
}

.swp-footer-widget-area ul ul,
.swp-footer-widget-area ol ol,
.swp-footer-widget-area ul ol,
.swp-footer-widget-area ol ul {
  margin-top: 3px;
  padding-left: 10px;
  border-left: 1px solid rgba(31, 41, 51, 0.10);
}

.swp-footer-widget-area p {
  margin-top: 0;
}

.swp-footer-widget-area p:last-child {
  margin-bottom: 0;
}

.swp-footer-widget-area .widget_recent_comments li {
  padding: 3px 0;
  line-height: 1.4;
}

.swp-footer-widget-area .widget_recent_comments li a {
  display: inline;
  padding: 0;
}
.swp-footer-bottom {
  display: flex;
  flex-direction: column;
  align-items: center;
  justify-content: center;
  gap: 8px;
  padding-top: 18px;
  border-top: 1px solid var(--swp-color-border);
  text-align: center;
}
.swp-footer-bottom p {
  margin: 0;
}
.swp-footer-feature-link {
  margin: 0 0 18px;
  text-align: center;
}
.swp-footer-feature-link a {
  color: inherit;
  text-decoration: none;
}
.swp-footer-feature-link a:hover,
.swp-footer-feature-link a:focus {
  color: inherit;
  text-decoration: none;
}
.swp-footer-meta {
  display: flex;
  align-items: center;
  justify-content: center;
  flex-wrap: wrap;
  gap: 0 6px;
}
.swp-footer-additional-notice {
  max-width: 900px;
}
.swp-footer-additional-notice__text > :first-child {
  margin-top: 0;
}
.swp-footer-additional-notice__text > :last-child {
  margin-bottom: 0;
}
.swp-footer-additional-notice a {
  color: inherit;
}
.swp-footer-credit a {
  text-decoration: none;
}
@media screen and (max-width: 782px) {
  .swp-footer-widget-area .widget-title,
  .swp-footer-widget-area h2,
  .swp-footer-widget-area h3 {
    margin-bottom: 9px;
    font-size: 12px;
  }

  .swp-footer-widget-area li > a {
    padding: 2px 0;
  }

  .swp-site-container {
    padding-left: 18px;
    padding-right: 18px;
  }
  .swp-footer-widgets--2,
  .swp-footer-widgets--3,
  .swp-footer-widgets--4 {
    grid-template-columns: 1fr;
  }
  .swp-footer-bottom {
    justify-content: center;
    text-align: center;
  }
  .swp-footer-intro {
    max-width: 100%;
  }
}

/* ---------------- SWP Home Header / Hero ---------------- */
.swp-home-header {
    position: relative;
    width: 100%;
    max-width: var(--swp-site-max-width, 1280px);
    height: var(--swp-home-hero-height, 520px);
    margin: 16px auto 0;
    overflow: hidden;
    background: #111;
}

.swp-home-header--full {
    max-width: none;
    width: 100%;
    margin-top: 0;
}

.swp-home-hero__single,
.swp-home-hero__slides,
.swp-home-hero__slide,
.swp-home-hero__video-wrap,
.swp-home-hero__click-target,
.swp-home-hero__picture,
.swp-home-hero__image,
.swp-home-hero__poster,
.swp-home-hero__video {
    width: 100%;
    height: 100%;
}

.swp-home-hero__single,
.swp-home-hero__slide,
.swp-home-hero__video-wrap {
    position: relative;
}

.swp-home-hero__click-target {
    position: relative;
    display: block;
    color: inherit;
    text-decoration: none;
}

.swp-home-hero__picture {
    display: block;
}

.swp-home-hero__image,
.swp-home-hero__video {
    display: block;
    object-fit: cover;
    object-position: center center;
}

.swp-home-hero__slides {
    position: relative;
}

.swp-home-hero__slide {
    position: absolute;
    inset: 0;
    opacity: 0;
    visibility: hidden;
    transition:
        opacity var(--swp-home-hero-transition, 650ms) ease,
        visibility var(--swp-home-hero-transition, 650ms) ease;
}

.swp-home-hero__slide.is-active {
    z-index: 1;
    opacity: 1;
    visibility: visible;
}

.swp-home-hero__overlay {
    position: absolute;
    inset: 0;
    z-index: 2;
    display: flex;
    align-items: flex-end;
    justify-content: center;
    padding: clamp(28px, 5vw, 64px) var(--swp-site-gutter, 24px);
    background: linear-gradient(
        to bottom,
        rgba(15, 23, 31, 0.02) 25%,
        rgba(15, 23, 31, 0.62) 100%
    );
    pointer-events: none;
}

.swp-home-hero__overlay-inner {
    width: min(1040px, 100%);
    color: #fff;
    text-align: center;
    text-shadow: 0 2px 12px rgba(0, 0, 0, .35);
}

.swp-home-hero__title {
    margin: 0;
    color: #fff;
    font-size: clamp(36px, 4.5vw, 64px);
    line-height: 1.05;
}

.swp-home-hero__text {
    max-width: 760px;
    margin: .65rem auto 0;
    color: #fff;
    font-size: clamp(16px, 1.5vw, 21px);
    line-height: 1.45;
}

.swp-home-hero__cta {
    display: inline-block;
    margin-top: 1rem;
    padding: .7rem 1.15rem;
    background: var(--swp-color-primary);
    color: #fff;
    font-weight: 700;
    line-height: 1.2;
    text-shadow: none;
}

.swp-home-hero__click-target:hover .swp-home-hero__cta,
.swp-home-hero__click-target:focus .swp-home-hero__cta {
    background: var(--swp-color-primary-dark);
}

.swp-home-hero__dots {
    position: absolute;
    left: 50%;
    bottom: 16px;
    z-index: 4;
    display: flex;
    align-items: center;
    justify-content: center;
    gap: 9px;
    transform: translateX(-50%);
}

.swp-home-hero__dot {
    appearance: none;
    flex: 0 0 11px;
    width: 11px;
    height: 11px;
    min-width: 11px;
    min-height: 11px;
    max-width: 11px;
    max-height: 11px;
    aspect-ratio: 1 / 1;
    padding: 0;
    border: 1px solid rgba(255, 255, 255, .92);
    border-radius: 50%;
    background: rgba(15, 23, 31, .38);
    box-shadow: none;
    line-height: 0;
    cursor: pointer;
}

.swp-home-hero__dot.is-active {
    background: #fff;
}

.swp-home-hero__poster {
    position: absolute;
    inset: 0;
    z-index: 1;
    transition: opacity 300ms ease;
}

.swp-home-hero__video {
    position: absolute;
    inset: 0;
    z-index: 0;
}

.swp-home-hero.is-video-ready .swp-home-hero__video {
    z-index: 1;
}

.swp-home-hero.is-video-ready .swp-home-hero__poster {
    opacity: 0;
}

.swp-home-hero--video .swp-home-hero__overlay {
    z-index: 3;
}

.swp-home-hero--video .swp-home-hero__cta {
    pointer-events: auto;
    color: #fff;
    text-decoration: none;
}

.swp-home-content {
    padding-top: 56px;
    padding-bottom: 56px;
}

.swp-home-content .post,
.swp-home-content .entry {
    width: 100%;
}

@media screen and (max-width: 782px) {
    .swp-home-header {
        height: var(--swp-home-hero-height-mobile, 360px);
    }

    .swp-home-header:not(.swp-home-header--full) {
        margin-top: 0;
    }

    .swp-home-hero__overlay {
        padding: 24px 20px 34px;
    }

    .swp-home-hero__title {
        font-size: clamp(30px, 9vw, 44px);
    }

    .swp-home-hero__text {
        font-size: 16px;
    }

    .swp-home-content {
        padding-top: 36px;
        padding-bottom: 36px;
    }
}

@media (prefers-reduced-motion: reduce) {
    .swp-home-hero__slide,
    .swp-home-hero__poster {
        transition: none;
    }
}

/* ---------------- SWP 404 Page ---------------- */
body.error404 {
  margin: 0;
  background: var(--swp-404-background, #efefed);
}

.error-404 {
  width: 100%;
  min-height: 100svh;
  display: grid;
  grid-template-rows: minmax(0, 1fr) auto;
  align-items: center;
  padding: clamp(48px, 8vw, 96px) 24px clamp(28px, 4vw, 48px);
  color: var(--swp-404-text, #252a2f);
  background: var(--swp-404-background, #efefed);
  box-sizing: border-box;
}

.admin-bar .error-404 {
  min-height: calc(100svh - 32px);
}

.error-404__content {
  width: min(100%, 760px);
  margin: 0 auto;
  text-align: center;
  align-self: center;
}

.error-404__code {
  display: flex;
  align-items: center;
  justify-content: center;
  margin: 0;
  color: var(--swp-404-text, #252a2f);
  font-size: clamp(112px, 19vw, 220px);
  font-weight: 800;
  line-height: 0.78;
  letter-spacing: -0.09em;
}

.error-404__code span {
  display: inline-block;
}

.error-404__zero {
  position: relative;
  z-index: 1;
  margin-inline: -0.035em -0.015em;
  transform: translateY(0.055em) rotate(-12deg);
  transform-origin: center;
}

.error-404__headline {
  margin: clamp(28px, 4vw, 42px) 0 0;
  color: var(--swp-404-text, #252a2f);
  font-size: clamp(18px, 2vw, 22px);
  font-weight: 500;
  line-height: 1.35;
}

.error-404__message {
  max-width: 690px;
  margin: 14px auto 0;
  color: var(--swp-404-muted, #666b70);
  font-size: clamp(15px, 1.5vw, 17px);
  line-height: 1.65;
}

.error-404__button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 46px;
  margin-top: 28px;
  padding: 11px 24px;
  color: var(--swp-404-button-text, #ffffff) !important;
  background: var(--swp-404-button-bg, #343a40);
  border: 1px solid var(--swp-404-button-bg, #343a40);
  border-radius: 0;
  font-size: 13px;
  font-weight: 700;
  line-height: 1.2;
  letter-spacing: 0.06em;
  text-decoration: none;
  text-transform: uppercase;
  transition: background-color 0.18s ease, border-color 0.18s ease, color 0.18s ease;
}

.error-404__button:hover {
  color: var(--swp-404-button-hover-text, #ffffff) !important;
  background: var(--swp-404-button-hover-bg, #1f2428);
  border-color: var(--swp-404-button-hover-bg, #1f2428);
}

.error-404__button:focus-visible {
  outline: 3px solid var(--swp-404-focus, #8c9297);
  outline-offset: 4px;
}

.error-404__illustration {
  width: min(220px, 46vw);
  margin: clamp(32px, 6vh, 72px) auto 0;
  text-align: center;
}

.error-404__illustration-image {
  display: block;
  width: 100%;
  height: auto;
  max-height: 180px;
  margin: 0 auto;
  object-fit: contain;
  filter: grayscale(1);
  opacity: 0.76;
}

@media screen and (max-width: 782px) {
  .admin-bar .error-404 {
    min-height: calc(100svh - 46px);
  }
}

@media screen and (max-width: 600px) {
  .error-404 {
    padding: 42px 20px 26px;
  }

  .error-404__code {
    font-size: clamp(96px, 34vw, 150px);
  }

  .error-404__headline {
    margin-top: 30px;
  }

  .error-404__illustration {
    width: min(180px, 52vw);
    margin-top: 36px;
  }
}


/* ---------------- SWP Standard Content / Optional Right Sidebar ---------------- */

/* The WordPress Default page template is always a true full-width content
 * layout. Sidebar templates opt into their own two-column grid separately. */
.swp-page-layout--full > .swp-site-container {
  display: block;
}

.swp-page-layout--full .swp-content-entry,
.swp-page-layout--full .swp-entry-content {
  display: block;
  float: none;
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
}

.swp-page-layout--full .swp-entry-content::after {
  content: "";
  display: table;
  clear: both;
}

.swp-main-content {
  width: 100%;
  padding-top: 48px;
  padding-bottom: 56px;
  box-sizing: border-box;
}

.swp-main-content--hero-overlay {
  padding-top: 0;
}

.swp-content-layout {
  width: 100%;
}

.swp-content-layout--right-sidebar {
  display: grid;
  grid-template-columns: minmax(0, 2fr) minmax(260px, 1fr);
  gap: clamp(32px, 5vw, 64px);
  align-items: start;
}

.swp-primary-content,
.swp-content-entry,
.swp-entry-content {
  min-width: 0;
  width: 100%;
}

.swp-entry-header {
  margin-bottom: 32px;
}

.swp-entry-header--single {
  margin-bottom: 36px;
}

.swp-entry-meta-bottom {
  margin-top: 32px;
}

.swp-comments {
  margin-top: 40px;
}

.swp-page-links {
  margin-top: 24px;
}

.swp-sidebar {
  min-width: 0;
  margin: 0;
}

.swp-sidebar-widget {
  margin: 0 0 32px;
}

.swp-sidebar-widget:last-child {
  margin-bottom: 0;
}

.swp-sidebar-widget__title {
  margin-top: 0;
}

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

@media screen and (max-width: 900px) {
  .swp-main-content {
    padding-top: 36px;
    padding-bottom: 44px;
  }

  .swp-main-content--hero-overlay {
    padding-top: 0;
  }

  .swp-content-layout--right-sidebar {
    grid-template-columns: 1fr;
    gap: 40px;
  }
}

@media screen and (max-width: 568px) {
  .swp-main-content {
    padding-top: 28px;
    padding-bottom: 36px;
  }

  .swp-main-content--hero-overlay {
    padding-top: 0;
  }
}


/* ---------------- SWP Single Post / Breadcrumb / Comments ---------------- */
.swp-entry-header--single {
  max-width: 1040px;
  margin-left: auto;
  margin-right: auto;
  text-align: center;
}

.swp-breadcrumbs {
  margin: 0 0 14px;
  color: var(--swp-color-muted);
  font-size: 11px;
  font-weight: 700;
  line-height: 1.4;
  letter-spacing: 0.08em;
  text-transform: uppercase;
}

.swp-breadcrumbs ol {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
  font-size: inherit;
}

.swp-breadcrumbs li {
  display: inline-flex;
  align-items: center;
  margin: 0;
  padding: 0;
}

.swp-breadcrumbs li + li::before {
  content: ">";
  margin: 0 8px;
  color: var(--swp-color-border);
}

.swp-breadcrumbs a,
.swp-breadcrumbs span {
  color: inherit;
  text-decoration: none;
}

.swp-breadcrumbs a:hover,
.swp-breadcrumbs a:focus {
  color: var(--swp-color-primary-dark);
  text-decoration: none;
}

.swp-single-title {
  margin: 0;
  font-size: clamp(38px, 5vw, 58px);
  line-height: 1.02;
  letter-spacing: -0.035em;
  text-align: center;
  text-wrap: balance;
}

.swp-entry-meta-wrap {
  margin-top: 12px;
}

.swp-entry-meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: 0;
  margin: 18px 0 0;
  color: var(--swp-color-muted);
  font-size: 12px;
  font-weight: 600;
  letter-spacing: .055em;
  line-height: 1.4;
  text-align: center;
  text-transform: uppercase;
}

.swp-entry-meta > span,
.swp-entry-meta > a {
  display: inline-flex;
  align-items: center;
  margin: 0;
}

.swp-entry-meta__author {
  column-gap: 4px;
}

.swp-entry-meta > * + *::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 13px;
  margin: 0 10px;
  background: var(--swp-color-border);
}

.swp-entry-meta a {
  color: var(--swp-color-primary);
  text-decoration: none;
}

.swp-entry-meta a:hover,
.swp-entry-meta a:focus {
  color: var(--swp-color-primary-dark);
}

@media screen and (max-width: 700px) {
  .swp-entry-meta {
    font-size: 11px;
    letter-spacing: .045em;
  }

  .swp-entry-meta > * + *::before {
    height: 12px;
    margin: 0 8px;
  }
}


.swp-author-profile {
  display: grid;
  grid-template-columns: 96px minmax(0, 1fr);
  gap: 24px;
  align-items: center;
  width: 100%;
  max-width: 980px;
  margin: 42px auto 0;
  padding: 24px 28px;
  border-top: 3px solid var(--swp-color-primary);
  border-bottom: 1px solid var(--swp-color-border);
  background: var(--swp-color-white);
  box-sizing: border-box;
}

.swp-author-profile__avatar {
  align-self: start;
}

.swp-author-profile__avatar img {
  display: block;
  width: 96px;
  height: 96px;
  margin: 0;
  object-fit: cover;
  border: 0;
  border-radius: 0;
}

.swp-author-profile__body {
  min-width: 0;
}

.swp-author-profile__eyebrow {
  margin: 0 0 3px;
  color: var(--swp-color-muted);
  font-size: 11px;
  font-weight: 800;
  letter-spacing: .08em;
  line-height: 1.3;
  text-transform: uppercase;
}

.swp-author-profile__name {
  margin: 0;
  padding: 0;
  font-size: 24px;
  line-height: 1.25;
}

.swp-author-profile__name a {
  color: var(--swp-color-text);
  text-decoration: none;
}

.swp-author-profile__name a:hover,
.swp-author-profile__name a:focus {
  color: var(--swp-color-primary);
  text-decoration: none;
}

.swp-author-profile__bio {
  max-width: 760px;
  margin: 8px 0 0;
  padding: 0;
  color: var(--swp-color-muted);
  font-size: 15px;
  line-height: 1.65;
}

.swp-author-profile__posts-link {
  display: inline-block;
  margin-top: 10px;
  color: var(--swp-color-primary);
  font-size: 12px;
  font-weight: 800;
  letter-spacing: .035em;
  text-decoration: none;
  text-transform: uppercase;
}

.swp-author-profile__posts-link:hover,
.swp-author-profile__posts-link:focus {
  color: var(--swp-color-primary-dark);
  text-decoration: none;
}

.swp-comments {
  width: 100%;
  max-width: 860px;
  margin: 34px auto 0;
}

.swp-comment-list {
  margin: 0 0 38px;
}

.swp-comments-title,
.comment-reply-title {
  margin: 0 0 20px;
  padding: 0;
  line-height: 1.2;
}

.swp-comments-title {
  margin-bottom: 8px;
  color: var(--swp-color-muted);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .08em;
  text-align: right;
  text-transform: uppercase;
}

.comment-reply-title {
  margin-bottom: 16px;
  color: var(--swp-color-text);
  font-size: 18px;
  font-weight: 700;
  letter-spacing: .055em;
  text-align: left;
  text-transform: uppercase;
}

.swp-comments .comment-list {
  margin: 0;
  padding: 0;
  list-style: none;
}

.swp-comments .comment-list > li,
.swp-comments .children > li {
  list-style: none;
}

.swp-comments .comment-list > li {
  margin: 0;
  padding: 20px 0 24px;
  border-top: 1px solid var(--swp-color-border);
}

.swp-comments .comment-list > li:last-child {
  border-bottom: 1px solid var(--swp-color-border);
}

.swp-comments .children {
  margin: 18px 0 0 42px;
  padding: 0;
  list-style: none;
}

.swp-comments .children > li {
  margin-top: 18px;
  padding-top: 18px;
  border-top: 1px solid var(--swp-color-border);
}

.swp-comment {
  display: grid;
  grid-template-columns: 56px minmax(0, 1fr);
  gap: 16px;
  margin: 0;
}

.swp-comment__avatar {
  grid-column: 1;
  align-self: start;
}

.swp-comment__avatar img {
  display: block;
  width: 56px;
  height: 56px;
  margin: 0;
  object-fit: cover;
  border: 0;
  border-radius: 0;
}

.swp-comment__main {
  grid-column: 2;
  min-width: 0;
}

.swp-comment__header {
  display: flex;
  align-items: baseline;
  justify-content: space-between;
  gap: 18px;
  margin-bottom: 8px;
}

.swp-comment__author {
  min-width: 0;
  font-size: 17px;
  font-weight: 600;
  line-height: 1.35;
}

.swp-comment__author a {
  color: var(--swp-color-primary);
  text-decoration: none;
}

.swp-comment__author a:hover,
.swp-comment__author a:focus {
  color: var(--swp-color-primary-dark);
}

.swp-comment__time {
  flex: 0 0 auto;
  color: var(--swp-color-muted);
  font-size: 12px;
  line-height: 1.4;
  text-align: right;
  white-space: nowrap;
}

.swp-comment__time a {
  color: var(--swp-color-muted);
  text-decoration: none;
}

.swp-comment__time a:hover,
.swp-comment__time a:focus {
  color: var(--swp-color-primary);
}

.swp-comment__content {
  margin: 0;
  color: var(--swp-color-text);
  font-size: 15px;
  line-height: 1.7;
}

.swp-comment__content p {
  margin: 0 0 10px;
  padding: 0;
}

.swp-comment__content p:last-child {
  margin-bottom: 0;
}

.swp-comment__footer {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 12px;
  margin-top: 10px;
  font-size: 12px;
  font-weight: 600;
}

.swp-comment__edit:empty {
  display: none;
}

.swp-comment__edit a,
.swp-comment__reply a {
  color: var(--swp-color-primary);
  text-decoration: none;
}

.swp-comment__edit:not(:empty) + .swp-comment__reply {
  padding-left: 12px;
  border-left: 1px solid var(--swp-color-border);
}

.swp-comment__edit a:hover,
.swp-comment__edit a:focus,
.swp-comment__reply a:hover,
.swp-comment__reply a:focus {
  color: var(--swp-color-primary-dark);
}


.swp-comments .comment-awaiting-moderation {
  margin: 0 0 12px;
  color: var(--swp-color-muted);
  font-size: 13px;
  font-style: italic;
}

.swp-comments .logged-in-as,
.swp-comments .comment-notes {
  margin: 0 0 18px;
  color: var(--swp-color-muted);
  font-size: 13px;
  line-height: 1.5;
}

.swp-comments .comment-form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: 18px;
  row-gap: 16px;
  width: 100%;
}

.swp-comments .comment-form > p {
  margin: 0;
}

.swp-comments .logged-in-as,
.swp-comments .comment-notes,
.swp-comments .comment-form-comment,
.swp-comments .comment-form-url,
.swp-comments .comment-form-cookies-consent,
.swp-comments .form-submit {
  grid-column: 1 / -1;
}

.swp-comments .comment-form-author {
  grid-column: 1;
}

.swp-comments .comment-form-email {
  grid-column: 2;
}

.swp-comments label {
  display: block;
  margin-bottom: 7px;
  font-size: 13px;
  font-weight: 700;
}

.swp-comments textarea,
.swp-comments input[type="text"],
.swp-comments input[type="email"],
.swp-comments input[type="url"] {
  width: 100%;
  max-width: none;
  border: 1px solid var(--swp-color-border);
  border-radius: 0;
  box-shadow: none;
  box-sizing: border-box;
  background: var(--swp-color-white);
}

.swp-comments textarea:focus,
.swp-comments input[type="text"]:focus,
.swp-comments input[type="email"]:focus,
.swp-comments input[type="url"]:focus {
  outline: 2px solid var(--swp-color-primary-soft);
  outline-offset: 1px;
  border-color: var(--swp-color-primary);
}

.swp-comments textarea {
  min-height: 150px;
  padding: 12px 14px;
  resize: vertical;
}

.swp-comments input[type="text"],
.swp-comments input[type="email"],
.swp-comments input[type="url"] {
  min-height: 42px;
  padding: 8px 10px;
}

.swp-comments .comment-form-cookies-consent {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-size: 12px;
  line-height: 1.45;
}

.swp-comments .comment-form-cookies-consent input {
  flex: 0 0 auto;
  margin-top: 2px;
}

.swp-comments .comment-form-cookies-consent label {
  margin: 0;
  font-size: inherit;
  font-weight: 400;
}

.swp-comments .form-submit {
  margin-top: 2px;
}

.swp-comment-submit {
  min-height: 42px;
  padding: 10px 20px;
  border-radius: 0 !important;
}

.swp-comment-navigation {
  display: flex;
  justify-content: space-between;
  gap: 20px;
  margin: 24px 0;
}

@media screen and (max-width: 700px) {
  .swp-author-profile {
    grid-template-columns: 72px minmax(0, 1fr);
    gap: 16px;
    padding: 20px 0;
  }

  .swp-author-profile__avatar img {
    width: 72px;
    height: 72px;
  }

  .swp-author-profile__name {
    font-size: 21px;
  }

  .swp-entry-header--single {
    text-align: left;
  }

  .swp-breadcrumbs ol,
  .swp-entry-meta {
    justify-content: flex-start;
  }

  .swp-single-title {
    font-size: clamp(30px, 9vw, 42px);
    text-align: left;
  }

  .swp-entry-meta-bottom .author {
    align-items: flex-start;
  }

  .swp-comments {
    max-width: none;
  }
}


/* ---------------- SWP Footer Intro ---------------- */
.swp-footer-intro {
  position: relative;
  z-index: 0;
  max-width: none;
  margin: 0 0 32px;
  padding: 34px 24px;
  text-align: center;
}

.swp-footer-intro::before {
  content: "";
  position: absolute;
  z-index: -1;
  top: 0;
  bottom: 0;
  left: 50%;
  width: 100vw;
  transform: translateX(-50%);
  background: var(--swp-color-footer-intro, #f5f7f8);
}

.swp-footer-intro > * {
  max-width: 900px;
  margin-left: auto;
  margin-right: auto;
}


/* ---------------- SWP Blog / Archive / Search ---------------- */
.swp-listing-page {
  padding-top: 54px;
  padding-bottom: 64px;
}

.swp-listing-header {
  max-width: 900px;
  margin: 0 auto 34px;
  text-align: center;
}

.swp-listing-kicker {
  margin: 0 0 8px;
  color: var(--swp-color-muted);
  font-size: 11px;
  font-weight: 700;
  letter-spacing: 0.1em;
  text-transform: uppercase;
}

.swp-listing-title {
  margin: 0;
  font-size: clamp(34px, 5vw, 56px);
  line-height: 1.05;
  letter-spacing: -0.03em;
}

.swp-listing-description {
  max-width: 720px;
  margin: 16px auto 0;
  color: var(--swp-color-muted);
  line-height: 1.65;
}

.swp-post-list {
  display: grid;
  gap: 0;
  max-width: 1060px;
  margin: 0 auto;
}

.swp-post-card {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr);
  gap: 18px;
  padding: 22px 0 22px;
  border-top: 1px solid var(--swp-color-border);
}

.swp-post-card:first-child {
  padding-top: 0;
  border-top: 0;
}

.swp-post-card:last-child {
  border-bottom: 0;
}

.swp-post-card--has-image {
  grid-template-columns: minmax(220px, 31%) minmax(0, 1fr);
  align-items: start;
}

.swp-post-card__image {
  display: block;
  overflow: hidden;
  background: var(--swp-color-surface);
}

.swp-post-card__image img {
  display: block;
  width: 100%;
  height: auto;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.swp-post-card__meta {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: 0;
  margin-bottom: 8px;
  color: var(--swp-color-muted);
  font-size: 11px;
  font-weight: 600;
  letter-spacing: .045em;
  line-height: 1.4;
  text-transform: uppercase;
}

.swp-post-card__meta span + span::before {
  content: "";
  display: inline-block;
  width: 1px;
  height: 11px;
  margin: 0 9px;
  vertical-align: -1px;
  background: var(--swp-color-border);
}

.swp-post-card__meta a {
  color: inherit;
}

.swp-post-card__title {
  margin: 0;
  font-size: clamp(26px, 3.2vw, 38px);
  line-height: 1.08;
  letter-spacing: -0.02em;
}

.swp-post-card__title a {
  color: var(--swp-color-text);
  text-decoration: none;
}

.swp-post-card__title a:hover,
.swp-post-card__title a:focus {
  color: var(--swp-color-primary);
}

.swp-post-card__excerpt {
  margin-top: 8px;
  color: var(--swp-color-text);
  font-size: 15px;
  line-height: 1.58;
}

.swp-post-card__excerpt p {
  margin: 0;
}

.swp-post-card__read-more {
  display: inline-block;
  margin-top: 10px;
  color: var(--swp-color-primary);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .055em;
  text-decoration: none;
  text-transform: uppercase;
}

.swp-post-card__read-more:hover,
.swp-post-card__read-more:focus {
  color: var(--swp-color-primary-dark);
}

.swp-pagination {
  max-width: 1060px;
  margin: 42px auto 0;
  padding-top: 24px;
  border-top: 1px solid var(--swp-color-border);
}

.swp-pagination .nav-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 8px;
}

.swp-pagination .page-numbers {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: 40px;
  min-height: 40px;
  padding: 8px 12px;
  border: 1px solid var(--swp-color-border);
  text-decoration: none;
}

.swp-pagination .page-numbers.current,
.swp-pagination .page-numbers:hover,
.swp-pagination .page-numbers:focus {
  color: var(--swp-color-primary);
  background: transparent;
  border-color: var(--swp-color-primary);
}

.swp-search-title {
  max-width: 980px;
  margin-left: auto;
  margin-right: auto;
}

.swp-search-title__label,
.swp-search-title__query {
  display: block;
}

.swp-search-title__query {
  overflow-wrap: anywhere;
  word-break: normal;
}

.swp-no-results {
  max-width: 620px;
  margin: 0 auto;
  text-align: center;
}

.swp-no-results h2 {
  margin: 0 0 8px;
  font-size: clamp(24px, 3vw, 30px);
}

.swp-no-results p {
  margin: 0;
  color: var(--swp-color-muted);
}

.search-form {
  display: flex;
  align-items: stretch;
  gap: 10px;
  width: 100%;
}

.search-form__label {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.search-form .search-field {
  width: 100%;
  min-width: 0;
}

.search-form .search-submit {
  flex: 0 0 auto;
  min-width: 96px;
}

.swp-no-results .search-form {
  max-width: 520px;
  margin: 20px auto 0;
}

@media screen and (max-width: 760px) {
  .swp-search-title__label,
  .swp-search-title__query {
    display: inline;
  }

  .swp-search-title__label::after {
    content: " ";
  }

  .swp-no-results {
    text-align: left;
  }

  .swp-no-results .search-form,
  .search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .search-form .search-submit {
    width: 100%;
    min-width: 0;
  }

  .swp-listing-page {
    padding-top: 36px;
    padding-bottom: 48px;
  }

  .swp-listing-header {
    margin-bottom: 28px;
    text-align: left;
  }

  .swp-post-card--has-image {
    grid-template-columns: minmax(0, 1fr);
  }

  .swp-post-card {
    gap: 14px;
    padding: 20px 0;
  }

  .swp-post-card__title {
    font-size: clamp(25px, 7vw, 32px);
  }

  .swp-post-card__meta {
    font-size: 10px;
  }
}


/* ---------------- SWP Global Typography / Elements ---------------- */
:root {
  --swp-font-size-base: 16px;
  --swp-line-height-base: 1.65;

  --swp-font-size-h1: 56px;
  --swp-font-size-h2: 40px;
  --swp-font-size-h3: 30px;
  --swp-font-size-h4: 22px;
  --swp-font-size-h5: 18px;
  --swp-font-size-h6: 14px;

  --swp-space-xs: 8px;
  --swp-space-sm: 16px;
  --swp-space-md: 24px;
  --swp-space-lg: 40px;
  --swp-space-xl: 64px;

  --swp-control-height: 44px;
  --swp-focus-ring: 2px solid var(--swp-color-primary);
}

html {
  font-size: 100%;
}

body {
  color: var(--swp-color-text);
  font-size: var(--swp-font-size-base);
  line-height: var(--swp-line-height-base);
}

.entry,
.swp-post-card__excerpt,
.swp-listing-description {
  line-height: var(--swp-line-height-base);
}

.entry > *:first-child {
  margin-top: 0;
}

.entry > *:last-child {
  margin-bottom: 0;
}

.entry p,
.entry ul,
.entry ol,
.entry blockquote,
.entry table,
.entry pre,
.entry figure,
.entry form {
  margin-top: 0;
  margin-bottom: 22px;
}

.entry h1,
.entry h2,
.entry h3,
.entry h4,
.entry h5,
.entry h6 {
  margin-top: 34px;
  margin-bottom: 0.5em;
  color: var(--swp-color-text);
  line-height: 1.12;
  letter-spacing: -0.02em;
  text-wrap: balance;
}

.entry h1:first-child,
.entry h2:first-child,
.entry h3:first-child,
.entry h4:first-child,
.entry h5:first-child,
.entry h6:first-child {
  margin-top: 0;
}

.entry h1 {
  font-size: var(--swp-font-size-h1);
}

.entry h2 {
  font-size: var(--swp-font-size-h2);
}

.entry h3 {
  font-size: var(--swp-font-size-h3);
}

.entry h4 {
  font-size: var(--swp-font-size-h4);
}

.entry h5 {
  font-size: var(--swp-font-size-h5);
}

.entry h6 {
  font-size: var(--swp-font-size-h6);
  letter-spacing: 0.06em;
  text-transform: uppercase;
}

.entry a:not(.button):not(.wp-element-button):not(.swp-post-card__read-more) {
  text-underline-offset: 0.14em;
  text-decoration-thickness: 1px;
}

.entry ul,
.entry ol {
  padding-left: 1.4em;
}

.entry li {
  line-height: 1.55;
}

.entry li + li {
  margin-top: 0.35em;
}

.entry ul ul,
.entry ol ol,
.entry ul ol,
.entry ol ul {
  margin-top: 0.5em;
  margin-bottom: 0.5em;
}

.entry hr {
  height: 1px;
  margin: var(--swp-space-lg) 0;
  border: 0;
  background: var(--swp-color-border);
}

.entry blockquote {
  margin-left: 0;
  margin-right: 0;
  padding: 18px 22px;
  border-left: 3px solid var(--swp-color-primary);
  background: var(--swp-color-surface);
  color: var(--swp-color-text);
}

.entry blockquote::before,
.entry blockquote::after {
  content: none;
}

.entry blockquote p {
  margin: 0;
  font-size: 1.05em;
  line-height: 1.65;
}

.entry blockquote cite {
  display: block;
  margin-top: 10px;
  color: var(--swp-color-muted);
  font-size: 13px;
  font-style: normal;
}

.entry table {
  width: 100%;
  border-collapse: collapse;
  border-spacing: 0;
  font-size: 0.95em;
}

.entry th,
.entry td {
  padding: 11px 12px;
  border: 1px solid var(--swp-color-border);
  text-align: left;
  vertical-align: top;
}

.entry th {
  background: var(--swp-color-surface);
  font-weight: 700;
}

.entry code {
  padding: 0.12em 0.35em;
  background: var(--swp-color-surface);
  border: 1px solid var(--swp-color-border);
  font-family: ui-monospace, SFMono-Regular, Menlo, Monaco, Consolas, "Liberation Mono", monospace;
  font-size: 0.9em;
}

.entry pre {
  overflow-x: auto;
  padding: 16px 18px;
  background: var(--swp-color-surface);
  border: 1px solid var(--swp-color-border);
  line-height: 1.55;
  white-space: pre;
}

.entry pre code {
  padding: 0;
  border: 0;
  background: transparent;
  font-size: 0.9em;
}

.entry figure {
  max-width: 100%;
}

.entry figure img,
.entry img {
  max-width: 100%;
  height: auto;
}

.entry figcaption,
.entry .wp-caption-text {
  margin-top: 9px;
  color: var(--swp-color-muted);
  font-size: 12px;
  line-height: 1.5;
}

button,
input[type="button"],
input[type="submit"],
input[type="reset"],
.button,
.wp-element-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: var(--swp-control-height);
  padding: 10px 18px;
  border: 1px solid var(--swp-color-primary-dark);
  border-radius: 0;
  background: var(--swp-color-primary-dark);
  color: var(--swp-color-white);
  box-shadow: none;
  font: inherit;
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  cursor: pointer;
}

button:hover,
button:focus,
input[type="button"]:hover,
input[type="button"]:focus,
input[type="submit"]:hover,
input[type="submit"]:focus,
input[type="reset"]:hover,
input[type="reset"]:focus,
.button:hover,
.button:focus,
.wp-element-button:hover,
.wp-element-button:focus {
  background: var(--swp-color-primary);
  border-color: var(--swp-color-primary);
  color: var(--swp-color-white);
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
input[type="date"],
input[type="password"],
select,
textarea {
  max-width: 100%;
  box-sizing: border-box;
  border: 1px solid var(--swp-color-border);
  border-radius: 0;
  background: var(--swp-color-white);
  color: var(--swp-color-text);
  box-shadow: none;
  font: inherit;
}

input[type="text"],
input[type="email"],
input[type="tel"],
input[type="url"],
input[type="search"],
input[type="number"],
input[type="date"],
input[type="password"],
select {
  min-height: var(--swp-control-height);
  padding: 8px 10px;
}

textarea {
  min-height: 160px;
  padding: 10px 12px;
  resize: vertical;
}

label {
  color: var(--swp-color-text);
}

input:focus,
select:focus,
textarea:focus,
button:focus-visible,
a:focus-visible {
  outline: var(--swp-focus-ring);
  outline-offset: 2px;
}

input[type="checkbox"],
input[type="radio"] {
  accent-color: var(--swp-color-primary);
}


/* Generic content forms: readable defaults without forcing every control full width. */
.entry form label {
  display: block;
  margin-bottom: 6px;
  font-weight: 600;
}

.entry form input[type="text"],
.entry form input[type="email"],
.entry form input[type="tel"],
.entry form input[type="url"],
.entry form input[type="search"],
.entry form input[type="number"],
.entry form input[type="date"],
.entry form input[type="password"],
.entry form select,
.entry form textarea {
  width: min(100%, 420px);
}

.entry form textarea {
  min-height: 150px;
}

.entry form input[type="checkbox"],
.entry form input[type="radio"] {
  width: auto;
  margin-right: 6px;
}

/* Prevent overly wide text-heavy content from becoming hard to read while
 * still allowing media, tables, and custom layout components to use the container. */
.entry > p,
.entry > ul,
.entry > ol,
.entry > blockquote,
.entry > h1,
.entry > h2,
.entry > h3,
.entry > h4,
.entry > h5,
.entry > h6 {
  max-width: 900px;
}

/* Default pages are allowed to use the full site container.
 * Single posts keep the 900px readability cap above. */
.swp-page-layout--full .entry > p,
.swp-page-layout--full .entry > ul,
.swp-page-layout--full .entry > ol,
.swp-page-layout--full .entry > blockquote,
.swp-page-layout--full .entry > h1,
.swp-page-layout--full .entry > h2,
.swp-page-layout--full .entry > h3,
.swp-page-layout--full .entry > h4,
.swp-page-layout--full .entry > h5,
.swp-page-layout--full .entry > h6 {
  max-width: none;
}

/* Tables remain full available width, but scroll on narrow screens. */
.entry table {
  display: table;
}

@media screen and (max-width: 700px) {
  .entry h1 {
    font-size: clamp(32px, 9.5vw, 44px);
  }

  .entry h2 {
    font-size: clamp(27px, 8vw, 36px);
  }

  .entry h3 {
    font-size: clamp(23px, 6.5vw, 30px);
  }

  .entry h4 {
    font-size: 19px;
  }

  .entry h5 {
    font-size: 16px;
  }

  .entry h6 {
    font-size: 12px;
  }

  .entry h1,
  .entry h2,
  .entry h3,
  .entry h4,
  .entry h5,
  .entry h6 {
    margin-top: 28px;
  }

  .entry blockquote {
    padding: 16px 16px;
  }

  .entry table {
    display: block;
    overflow-x: auto;
    white-space: nowrap;
  }
}


/* ---------------- SWP Responsive Cleanup ---------------- */
@media screen and (max-width: 782px) {
  /* Keep footer widget areas compact when stacked. */
  .swp-footer-container {
    padding-top: 24px;
    padding-bottom: 18px;
  }

  .swp-footer-widgets {
    gap: 18px;
    margin-bottom: 22px;
  }

  .swp-footer-widget-area,
  .swp-footer-widget-area .flex_33 {
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .swp-footer-widget-area > * {
    margin-top: 0;
    margin-bottom: 0;
  }

  /* Right-sidebar templates stack predictably beneath primary content. */
  .swp-content-layout--right-sidebar {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 28px;
  }

  .swp-sidebar {
    width: 100%;
    margin-top: 0;
  }

  .swp-sidebar-widget {
    margin-bottom: 20px;
  }
}

@media screen and (max-width: 700px) {

  /* Generic forms should use the available mobile width. */
  .entry input[type="text"],
  .entry input[type="email"],
  .entry input[type="tel"],
  .entry input[type="url"],
  .entry input[type="search"],
  .entry input[type="number"],
  .entry input[type="date"],
  .entry input[type="password"],
  .entry select,
  .entry textarea {
    width: 100%;
  }

  .entry input[type="checkbox"],
  .entry input[type="radio"] {
    width: auto;
  }

  /* Comments stay compact and readable on narrow screens. */
  .swp-comments {
    margin-top: 28px;
  }

  .swp-comments-title {
    font-size: 12px;
  }

  .comment-reply-title {
    font-size: 17px;
  }

  .swp-comments .children {
    margin-left: 18px;
  }

  .swp-comments .children > li {
    margin-top: 16px;
    padding-top: 16px;
  }

  .swp-comment {
    grid-template-columns: 48px minmax(0, 1fr);
    gap: 12px;
  }

  .swp-comment__avatar img {
    width: 48px;
    height: 48px;
  }

  .swp-comment__header {
    align-items: flex-start;
    gap: 10px;
    margin-bottom: 7px;
  }

  .swp-comment__time {
    max-width: 44%;
    font-size: 11px;
    line-height: 1.35;
    white-space: normal;
  }

  .swp-comment__content {
    font-size: 15px;
    line-height: 1.65;
  }

  .swp-comment__footer {
    margin-top: 9px;
  }

  .swp-comments .comment-form {
    grid-template-columns: 1fr;
    row-gap: 15px;
  }

  .swp-comments .comment-form-author,
  .swp-comments .comment-form-email,
  .swp-comments .comment-form-url,
  .swp-comments .comment-form-comment,
  .swp-comments .comment-form-cookies-consent,
  .swp-comments .form-submit,
  .swp-comments .logged-in-as,
  .swp-comments .comment-notes {
    grid-column: 1;
  }

  .swp-comments .comment-form input[type="text"],
  .swp-comments .comment-form input[type="email"],
  .swp-comments .comment-form input[type="url"],
  .swp-comments .comment-form textarea {
    display: block;
    width: 100% !important;
    max-width: none !important;
    box-sizing: border-box;
  }

  .swp-comments .comment-form input[type="text"],
  .swp-comments .comment-form input[type="email"],
  .swp-comments .comment-form input[type="url"] {
    min-height: 44px;
  }

  .swp-comments .comment-form textarea {
    min-height: 165px;
  }
}


/* ---------------- SWP Sidebar Widget Polish ---------------- */
.swp-sidebar {
  min-width: 0;
}

.swp-sidebar .widget,
.swp-sidebar-widget {
  margin: 0 0 30px;
  padding-top: 14px;
  border-top: 1px solid var(--swp-color-border);
}

.swp-sidebar .widget:first-child,
.swp-sidebar-widget:first-child {
  padding-top: 0;
  border-top: 0;
}

.swp-sidebar .widget:last-child,
.swp-sidebar-widget:last-child {
  margin-bottom: 0;
}

.swp-sidebar .widget-title,
.swp-sidebar h2,
.swp-sidebar h3 {
  margin: 0 0 12px;
  color: var(--swp-color-muted);
  font-size: 12px;
  font-weight: 700;
  letter-spacing: .06em;
  line-height: 1.25;
  text-transform: uppercase;
}

.swp-sidebar ul,
.swp-sidebar ol {
  margin: 0;
  padding: 0;
  list-style: none;
}

.swp-sidebar li {
  margin: 0;
  padding: 0;
}

.swp-sidebar li + li {
  margin-top: 0;
  border-top: 1px solid rgba(31, 41, 51, 0.08);
}

.swp-sidebar li > a {
  display: block;
  padding: 7px 0;
  color: var(--swp-color-primary);
  line-height: 1.4;
  text-decoration: none;
}

.swp-sidebar li > a:hover,
.swp-sidebar li > a:focus {
  color: var(--swp-color-primary-dark);
}

.swp-sidebar ul ul,
.swp-sidebar ol ol,
.swp-sidebar ul ol,
.swp-sidebar ol ul {
  margin: 0;
  padding: 0 0 0 12px;
  border-left: 1px solid var(--swp-color-border);
}

.swp-sidebar .widget_recent_comments li {
  padding: 7px 0;
  line-height: 1.45;
}

.swp-sidebar .widget_recent_comments li + li {
  border-top: 1px solid rgba(31, 41, 51, 0.08);
}

.swp-sidebar .widget_recent_comments li a {
  display: inline;
  padding: 0;
}

.swp-sidebar .search-form {
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
}

.swp-sidebar .search-form label {
  flex: 1 1 auto;
  min-width: 0;
  margin: 0;
}

.swp-sidebar .search-field {
  width: 100%;
  min-width: 0;
}

.swp-sidebar .search-submit {
  flex: 0 0 auto;
  min-width: 92px;
}

@media screen and (max-width: 782px) {
  .swp-sidebar {
    padding-top: 2px;
  }

  .swp-sidebar .widget,
  .swp-sidebar-widget {
    margin-bottom: 26px;
    padding-top: 12px;
  }

  .swp-sidebar .widget:first-child,
  .swp-sidebar-widget:first-child {
    padding-top: 0;
  }

  .swp-sidebar .widget-title,
  .swp-sidebar h2,
  .swp-sidebar h3 {
    margin-bottom: 10px;
    font-size: 11px;
  }

  .swp-sidebar .search-form {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 10px;
  }

  .swp-sidebar .search-form label,
  .swp-sidebar .search-field,
  .swp-sidebar .search-submit {
    width: 100%;
  }

  .swp-sidebar .search-submit {
    min-width: 0;
  }

  .swp-sidebar ul,
  .swp-sidebar ol {
    padding-left: 0;
  }
}


/* SWP authoritative heading scale. */
.entry h1 { font-size: var(--swp-font-size-h1); }
.entry h2 { font-size: var(--swp-font-size-h2); }
.entry h3 { font-size: var(--swp-font-size-h3); }
.entry h4 { font-size: var(--swp-font-size-h4); }
.entry h5 { font-size: var(--swp-font-size-h5); }
.entry h6 { font-size: var(--swp-font-size-h6); }

@media screen and (max-width: 700px) {
  .entry h1 { font-size: 40px; }
  .entry h2 { font-size: 32px; }
  .entry h3 { font-size: 26px; }
  .entry h4 { font-size: 21px; }
  .entry h5 { font-size: 18px; }
  .entry h6 { font-size: 14px; }
}


/* Footer widgets are laid out by the footer grid, not legacy flex classes. */
.swp-footer-widget {
  min-width: 0;
}


/* Anchor-based buttons must keep button text color.
 * This comes after generic content-link rules so normal link color cannot
 * override the button label. */
.entry a.button,
.entry a.wp-block-button__link,
.entry a[class*="button"],
a.button,
a.wp-block-button__link {
  color: var(--swp-color-white);
  text-decoration: none;
}

.entry a.button:hover,
.entry a.button:focus,
.entry a.wp-block-button__link:hover,
.entry a.wp-block-button__link:focus,
.entry a[class*="button"]:hover,
.entry a[class*="button"]:focus,
a.button:hover,
a.button:focus,
a.wp-block-button__link:hover,
a.wp-block-button__link:focus {
  color: var(--swp-color-white);
  text-decoration: none;
}


/* ---------------- Mobile Inline Content Images ----------------
 * Keep classic WordPress left/right image wrapping on larger screens, but
 * prevent narrow text columns beside floated images on phones. */
@media screen and (max-width: 700px) {
  .entry img.alignleft,
  .entry img.alignright,
  .entry .alignleft,
  .entry .alignright,
  .entry figure.alignleft,
  .entry figure.alignright,
  .entry .wp-caption.alignleft,
  .entry .wp-caption.alignright {
    float: none !important;
    display: block;
    width: 100%;
    max-width: 100%;
    margin: 0 0 18px !important;
  }

  .entry figure.alignleft img,
  .entry figure.alignright img,
  .entry .wp-caption.alignleft img,
  .entry .wp-caption.alignright img {
    display: block;
    width: 100%;
    height: auto;
  }

  .entry figure.alignleft figcaption,
  .entry figure.alignright figcaption,
  .entry .wp-caption.alignleft .wp-caption-text,
  .entry .wp-caption.alignright .wp-caption-text {
    margin-top: 8px;
  }
}


/* ---------------- Footer Search Widget ----------------
 * Keep classic and block Search widgets aligned with the flatter SWP footer
 * treatment rather than falling back to WordPress widget defaults. */
.swp-footer-widget-area .widget_search .widget-title,
.swp-footer-widget-area .wp-block-search__label {
  display: block;
  margin: 0 0 9px;
  color: var(--swp-color-text);
  font-size: 13px;
  font-weight: 700;
  letter-spacing: .045em;
  line-height: 1.25;
  text-transform: uppercase;
}

.swp-footer-widget-area .search-form,
.swp-footer-widget-area .wp-block-search__inside-wrapper {
  display: flex;
  align-items: stretch;
  gap: 8px;
  width: 100%;
}

.swp-footer-widget-area .search-form__label,
.swp-footer-widget-area .wp-block-search__inside-wrapper .wp-block-search__input {
  min-width: 0;
}

.swp-footer-widget-area .search-form__label {
  flex: 1 1 auto;
}

.swp-footer-widget-area .search-field,
.swp-footer-widget-area .wp-block-search__input {
  width: 100%;
  min-width: 0;
}

.swp-footer-widget-area .search-submit,
.swp-footer-widget-area .wp-block-search__button {
  flex: 0 0 auto;
  min-width: 84px;
  margin: 0;
}

@media screen and (max-width: 560px) {
  .swp-footer-widget-area .search-form,
  .swp-footer-widget-area .wp-block-search__inside-wrapper {
    display: grid;
    grid-template-columns: minmax(0, 1fr);
    gap: 8px;
  }

  .swp-footer-widget-area .search-submit,
  .swp-footer-widget-area .wp-block-search__button {
    width: 100%;
    min-width: 0;
  }
}


/* ---------------- Single Post Featured Image ----------------
 * Three global presentation modes:
 * 1. Article Width: matches the article measure with a restrained landscape crop.
 * 2. Full Width: full-bleed viewport hero on normal full-width posts.
 * 3. Hero Overlay: full-bleed image with breadcrumb/title/meta over the image.
 */

.swp-single-featured-image {
  margin-top: 24px;
  margin-bottom: 30px;
}

.swp-single-featured-image__media {
  position: relative;
  overflow: hidden;
  background: var(--swp-color-surface);
}

.swp-single-featured-image__img {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  object-fit: cover;
  object-position: center center;
}

.swp-single-featured-image__caption {
  margin: 9px auto 0;
  color: var(--swp-color-muted);
  font-size: 12px;
  line-height: 1.5;
}

/* Default: same width as the article with a shallower editorial crop. */
.swp-single-featured-image--article {
  width: 100%;
  margin-left: auto;
  margin-right: auto;
}

.swp-single-featured-image--article .swp-single-featured-image__media {
  height: clamp(220px, 22vw, 320px);
}

/* Full-bleed styles span the viewport only on the normal full-width post. */
.swp-single-featured-image--full,
.swp-single-featured-image--overlay {
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: none;
  margin-left: -50vw;
  margin-right: -50vw;
}

.swp-single-featured-image--full .swp-single-featured-image__media {
  height: clamp(240px, 24vw, 360px);
}

.swp-single-featured-image--overlay .swp-single-featured-image__media {
  height: clamp(250px, 24vw, 340px);
}

.swp-single-featured-image--full .swp-single-featured-image__caption,
.swp-single-featured-image--overlay .swp-single-featured-image__caption {
  width: min(1280px, calc(100% - (2 * var(--swp-site-gutter, 24px))));
}

/* Sidebar posts keep wide/overlay imagery within the primary content column. */
.swp-content-layout--right-sidebar .swp-single-featured-image--full,
.swp-content-layout--right-sidebar .swp-single-featured-image--overlay {
  left: auto;
  width: 100%;
  margin-left: 0;
  margin-right: 0;
}

/* Title-overlay mode. */
.swp-single-featured-image--overlay {
  margin-top: 0;
  margin-bottom: 0;
}

.swp-single-featured-image__shade {
  position: absolute;
  inset: 0;
  background:
    linear-gradient(
      to bottom,
      rgba(15, 23, 31, 0.24) 0%,
      rgba(15, 23, 31, 0.18) 30%,
      rgba(15, 23, 31, 0.72) 100%
    );
}

.swp-single-featured-image__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: clamp(24px, 4vw, 48px) var(--swp-site-gutter, 24px);
}

.swp-single-featured-image__title {
  width: min(1040px, 100%);
  margin: 0;
  color: var(--swp-color-white);
  text-align: center;
  text-shadow: 0 2px 14px rgba(0, 0, 0, 0.34);
}

.swp-single-featured-image__below {
  width: min(1040px, 100%);
  margin: 16px auto 28px;
  text-align: center;
}

.swp-single-featured-image__below .swp-breadcrumbs {
  margin-bottom: 10px;
}

.swp-single-featured-image__below .swp-entry-meta {
  justify-content: center;
}

@media screen and (max-width: 700px) {
  .swp-single-featured-image {
    margin-top: 18px;
    margin-bottom: 24px;
  }

  .swp-single-featured-image--overlay {
    margin-top: 0;
  }

  .swp-single-featured-image--article .swp-single-featured-image__media,
  .swp-single-featured-image--full .swp-single-featured-image__media {
    height: clamp(190px, 52vw, 250px);
  }

  .swp-single-featured-image--overlay .swp-single-featured-image__media {
    height: clamp(220px, 58vw, 280px);
    min-height: 0;
  }

  .swp-single-featured-image__caption {
    font-size: 11px;
  }

  .swp-single-featured-image__overlay {
    align-items: flex-end;
    padding: 24px 20px;
  }

  .swp-single-featured-image__title {
    font-size: clamp(28px, 8.5vw, 40px);
  }

  .swp-single-featured-image__below {
    margin-top: 14px;
    margin-bottom: 24px;
    padding: 0 4px;
  }
}


/* Pages reuse the Featured Image presentation system. */
.swp-page-featured-image.swp-single-featured-image--overlay {
  margin-bottom: 24px;
}

.swp-main-content--hero-overlay .swp-page-featured-image.swp-single-featured-image--overlay {
  margin-bottom: 24px;
}


/* ---------------- Utility Template Consistency ----------------
 * Keep 404/search-empty/landing/splash actions aligned with current SWP button language. */
.error404 .button,
.error404 button,
.swp-no-results .button,
.swp-no-results button,
.swp-no-results .search-submit {
  border-radius: 0;
}

.swp-no-results {
  padding-bottom: 8px;
}


/* ---------------- SWP Subscribers / Event Notify Me ---------------- */
.swp-event__button--notify-me {
  cursor: pointer;
  font: inherit;
}

.swp-modal-open {
  overflow: hidden;
}

.swp-notify-modal[hidden] {
  display: none;
}

.swp-notify-modal {
  position: fixed;
  inset: 0;
  z-index: 100000;
  display: grid;
  place-items: center;
  padding: 24px;
  box-sizing: border-box;
}

.swp-notify-modal__backdrop {
  position: absolute;
  inset: 0;
  background: rgba(15, 23, 42, .72);
}

.swp-notify-modal__dialog {
  position: relative;
  z-index: 1;
  width: min(100%, 520px);
  max-height: calc(100vh - 48px);
  overflow-y: auto;
  padding: clamp(24px, 4vw, 36px);
  background: var(--swp-color-surface, #fff);
  color: var(--swp-color-text, #1f2933);
  box-sizing: border-box;
  box-shadow: 0 18px 60px rgba(0, 0, 0, .24);
}

.swp-notify-modal__close {
  position: absolute;
  top: 10px;
  right: 12px;
  width: 40px;
  height: 40px;
  padding: 0;
  border: 0;
  background: transparent;
  color: inherit;
  font-size: 30px;
  line-height: 1;
  cursor: pointer;
}

.swp-notify-modal__dialog h2,
.swp-mailing-list__heading {
  margin-top: 0;
}

.swp-notify-modal__event {
  margin: -.35rem 0 .5rem;
  font-weight: 700;
}

.swp-notify-modal__intro,
.swp-mailing-list__description {
  color: var(--swp-color-muted, #64748b);
}

.swp-subscriber-form {
  display: grid;
  gap: 14px;
}

.swp-subscriber-form p {
  margin: 0;
}

.swp-subscriber-form label {
  display: block;
  margin-bottom: 5px;
  font-weight: 600;
  text-align: left;
}

.swp-subscriber-form input[type="text"],
.swp-subscriber-form input[type="email"] {
  width: 100%;
  min-height: 46px;
  padding: 9px 11px;
  border: 1px solid var(--swp-color-border, #cbd5e1);
  border-radius: 0;
  background: #fff;
  color: #111827;
  box-sizing: border-box;
}

.swp-subscriber-form__field-note {
  display: block;
  margin-top: 5px;
  color: var(--swp-color-muted, #64748b);
  font-size: .9em;
  font-weight: 400;
}

.swp-subscriber-form__checkbox label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  font-weight: 400;
}

.swp-subscriber-form__checkbox input {
  margin-top: .25em;
}

.swp-subscriber-form__submit {
  width: 100%;
  min-height: 46px;
  padding: 10px 18px;
  box-sizing: border-box;
  border: 0;
  border-radius: 0;
  background: var(--swp-color-primary-dark, #174f7c);
  color: #fff;
  font: inherit;
  font-weight: 700;
  cursor: pointer;
}

.swp-subscriber-form__submit:disabled {
  cursor: default;
  opacity: .65;
}

.swp-subscriber-form__message {
  min-height: 1.5em;
}

.swp-subscriber-form__message.is-error {
  color: #8a1f11;
}

.swp-subscriber-form__message.is-success {
  color: #17683a;
}

.swp-subscriber-form__honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

.swp-mailing-list {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}

.swp-mailing-list__form {
  width: 100%;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(16px, 2.5vw, 28px);
}

.swp-mailing-list__form > p {
  width: 100%;
  max-width: none;
  margin-left: 0;
  margin-right: 0;
  box-sizing: border-box;
}

.swp-mailing-list__consent,
.swp-mailing-list__form > .swp-subscriber-form__message,
.swp-mailing-list__form > .swp-subscriber-form__submit {
  grid-column: 1 / -1;
}

.swp-mailing-list__consent {
  text-align: left;
}

.swp-mailing-list__consent label {
  margin-bottom: 0;
  line-height: 1.45;
}

@media screen and (max-width: 600px) {
  .swp-mailing-list__form {
    grid-template-columns: 1fr;
  }

  .swp-mailing-list__consent,
  .swp-mailing-list__form > .swp-subscriber-form__message,
  .swp-mailing-list__form > .swp-subscriber-form__submit {
    grid-column: auto;
  }

  .swp-notify-modal {
    padding: 14px;
  }

  .swp-notify-modal__dialog {
    max-height: calc(100vh - 28px);
    padding: 24px 18px;
  }
}

/* SWP native Contact + Booking forms */
.swp-native-form {
  width: 100%;
  max-width: 900px;
  margin-inline: auto;
}

.swp-native-form__heading {
  text-align: center;
}

.swp-native-form__form {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  column-gap: clamp(16px, 2.5vw, 28px);
  row-gap: 14px;
  width: 100%;
}

.swp-native-form__field {
  width: 100%;
  margin: 0;
}

.swp-native-form__column {
  display: flex;
  flex-direction: column;
  gap: 14px;
  min-width: 0;
}

.swp-native-form__field--message-fill {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
}

.swp-native-form__field--message-fill textarea {
  flex: 1 1 auto;
  min-height: 0;
}

.swp-contact-form-wrap .swp-native-form__column--contact-message .swp-native-form__field--message-fill,
.swp-contact-form-wrap .swp-native-form__column--contact-message textarea {
  height: 100%;
}

.swp-booking-form-wrap .swp-native-form__column--booking-right .swp-native-form__field--message-fill textarea {
  min-height: 126px;
}

.swp-native-form__field--full,
.swp-native-form__checkbox,
.swp-native-form__submit,
.swp-native-form__message {
  grid-column: 1 / -1 !important;
}

.swp-native-form__field--full {
  width: 100% !important;
  max-width: none !important;
}

.swp-native-form__field label {
  display: block;
  margin: 0 0 6px;
  text-align: left;
  font-weight: 700;
}

.swp-native-form__field input,
.swp-native-form__field textarea,
.swp-native-form__field select {
  display: block;
  width: 100%;
  max-width: none;
  box-sizing: border-box;
}

.swp-native-form__field textarea {
  min-height: 180px;
  resize: vertical;
}


.swp-native-form__checkbox {
  width: 100%;
  margin: 0;
}

.swp-native-form__checkbox label {
  display: flex;
  align-items: flex-start;
  gap: 9px;
  margin: 0;
  text-align: left;
}

.swp-native-form__checkbox input[type="checkbox"] {
  flex: 0 0 auto;
  width: auto;
  margin-top: .2em;
}

.swp-native-form__submit {
  width: 100%;
  margin-top: 2px;
}

.swp-native-form__submit:disabled {
  cursor: default;
  opacity: .65;
}

.swp-native-form__message {
  min-height: 1.5em;
  margin: 0;
}

.swp-native-form__message.is-error {
  color: #8a1f11;
}

.swp-native-form__message.is-success {
  color: #17683a;
}

.swp-native-form__honeypot {
  position: absolute !important;
  left: -9999px !important;
  width: 1px !important;
  height: 1px !important;
  overflow: hidden !important;
}

@media screen and (max-width: 600px) {
  .swp-native-form__form {
    grid-template-columns: 1fr;
  }

  .swp-native-form__field--full,
  .swp-native-form__checkbox,
  .swp-native-form__submit,
  .swp-native-form__message {
    grid-column: auto !important;
  }
}

main.site-main>.swp-site-container{background:var(--swp-color-surface);}

/* SWP bundle: swp-social-links */
/*
 * SWP Framework — Global Social Links
 */

.swp-social-links {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: center;
  gap: .8rem;
}

.swp-social-links__link {
  display: inline-flex !important;
  flex: 0 0 var(--swp-social-link-size, 42px);
  width: var(--swp-social-link-size, 42px) !important;
  height: var(--swp-social-link-size, 42px) !important;
  min-width: var(--swp-social-link-size, 42px);
  min-height: var(--swp-social-link-size, 42px);
  max-width: var(--swp-social-link-size, 42px);
  max-height: var(--swp-social-link-size, 42px);
  align-items: center;
  justify-content: center;
  padding: 0 !important;
  margin: 0;
  background: var(--swp-social-bg-color, var(--swp-color-primary));
  color: var(--swp-social-glyph-color, #fff) !important;
  text-decoration: none;
  line-height: 1;
}

.swp-social-links--shape-circle .swp-social-links__link {
  border-radius: 50%;
}

.swp-social-links--shape-square .swp-social-links__link {
  border-radius: 0;
}

/* Icon Only uses a tighter visual rhythm than the button-style variants. */
.swp-social-links--shape-icon {
  gap: .25rem;
}

.swp-social-links--shape-icon .swp-social-links__link {
  flex-basis: var(--swp-social-link-size, 34px);
  width: var(--swp-social-link-size, 34px) !important;
  height: var(--swp-social-link-size, 34px) !important;
  min-width: var(--swp-social-link-size, 34px);
  min-height: var(--swp-social-link-size, 34px);
  max-width: var(--swp-social-link-size, 34px);
  max-height: var(--swp-social-link-size, 34px);
  background: transparent !important;
  border-radius: 0;
  color: var(--swp-social-icon-color, currentColor) !important;
}

.swp-social-links--shape-icon .swp-social-links__link:hover,
.swp-social-links--shape-icon .swp-social-links__link:focus {
  background: transparent !important;
  color: var(--swp-social-icon-color, currentColor) !important;
}

/* No visual hover animation/color change. Keep focus indication for keyboard users. */
.swp-social-links__link:hover,
.swp-social-links__link:focus {
  background: var(--swp-social-bg-color, var(--swp-color-primary));
  color: var(--swp-social-glyph-color, #fff) !important;
  transform: none;
}

.swp-social-links__link:focus-visible {
  outline: 2px solid var(--swp-color-primary-dark);
  outline-offset: 2px;
}

.swp-social-links__icon {
  display: block;
  width: 23px !important;
  height: 23px !important;
  min-width: 23px;
  min-height: 23px;
  max-width: 23px !important;
  max-height: 23px !important;
  fill: currentColor;
  stroke: none;
  overflow: visible;
  transform: scale(var(--swp-social-icon-scale, 1));
  transform-origin: center;
}

.swp-social-fill {
  fill: currentColor;
  stroke: none;
}

.swp-social-cutout {
  fill: var(--swp-color-primary);
  stroke: none;
}

.swp-social-links__icon--instagram { width: 22px !important; height: 22px !important; }
.swp-social-links__icon--threads { width: 23px !important; height: 23px !important; }
.swp-social-links__icon--facebook { width: 22px !important; height: 22px !important; }
.swp-social-links__icon--youtube { width: 23px !important; height: 23px !important; }
.swp-social-links__icon--tiktok { width: 23px !important; height: 23px !important; }
.swp-social-links__icon--x { width: 21px !important; height: 21px !important; }
.swp-social-links__icon--spotify { width: 24px !important; height: 24px !important; }
.swp-social-links__icon--applemusic { width: 21px !important; height: 24px !important; }
.swp-social-links__icon--snapchat { width: 24px !important; height: 24px !important; }
.swp-social-links__icon--patreon { width: 23px !important; height: 23px !important; }
.swp-social-links__icon--imdb { width: 24px !important; height: 24px !important; }
.swp-social-links__icon--onlyfans { width: 23px !important; height: 23px !important; }

.swp-social-links__label {
  margin-left: .4rem;
}


/* SWP bundle: swp-navigation */

/* ---------------- SWP Site Header / Primary Navigation ----------------
 * Full-width header/navigation with standard site gutters.
 * Desktop layout is configurable; tablet/mobile navigation becomes a
 * full-screen overlay. Site-specific design changes belong in style-theme.css.
 */

.site-header {
  position: relative;
  width: 100%;
  background: var(--swp-color-header, var(--swp-color-white));
  box-sizing: border-box;
  z-index: 100;
}

.site-header__inner {
  display: flex;
  align-items: center;
  width: 100%;
  max-width: none;
  min-height: 88px;
}

/*
 * The primary header/navigation intentionally spans the viewport rather than
 * inheriting the framework's 1280px content cap. It still uses the standard
 * site gutter so branding/menu controls do not touch the browser edge.
 */
.site-header .site-header__inner.swp-site-container {
  max-width: none;
}

.site-branding {
  flex: 0 1 auto;
  min-width: 0;
}

.site-title {
  margin: 0;
  font-size: 36px;
  font-weight: 600;
  line-height: 1.1;
  letter-spacing: -0.5px;
}

.site-title a {
  color: var(--swp-color-text);
  text-decoration: none;
}

.site-title a:hover,
.site-title a:focus {
  color: var(--swp-color-text);
  text-decoration: none;
}

.site-title--logo {
  line-height: 0;
}

.site-brand-link--logo {
  display: inline-flex;
  align-items: center;
  line-height: 0;
}

.swp-header-logo--desktop {
  display: block;
  width: auto !important;
  height: auto !important;
  max-width: min(320px, 30vw) !important;
  max-height: 58px !important;
  object-fit: contain;
}

/* ---------------- Desktop header layout variants ---------------- */

@media screen and (min-width: 1200px) {
  .site-header--brand-left-menu-right .site-branding {
    order: 1;
  }

  .site-header--brand-left-menu-right .site-navigation {
    order: 2;
    margin-left: auto;
  }

  .site-header--menu-left-brand-right .site-navigation {
    order: 1;
    margin-left: 0;
    margin-right: auto;
  }

  .site-header--menu-left-brand-right .site-branding {
    order: 2;
    margin-left: auto;
    text-align: right;
  }

  /*
   * Centered-menu layouts use true header/viewport centering rather than a
   * three-column grid. This keeps the menu position independent of the
   * branding width and makes the left/right brand variants exact mirrors.
   */
  .site-header--brand-left-menu-center .site-header__inner,
  .site-header--brand-right-menu-center .site-header__inner {
    position: relative;
    display: flex;
    align-items: center;
  }

  .site-header--brand-left-menu-center .site-branding {
    margin-right: auto;
  }

  .site-header--brand-right-menu-center .site-branding {
    margin-left: auto;
    text-align: right;
  }

  .site-header--brand-left-menu-center .site-navigation,
  .site-header--brand-right-menu-center .site-navigation {
    position: absolute;
    top: 50%;
    left: 50%;
    width: max-content;
    margin: 0;
    transform: translate(-50%, -50%);
  }

  .site-header--brand-left-menu-center .site-menu,
  .site-header--brand-right-menu-center .site-menu {
    justify-content: center;
  }
}

.site-navigation {
  margin-left: auto;
}

.site-menu {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: 0;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-menu li {
  position: relative;
  margin: 0;
  padding: 0;
  list-style: none;
}

.site-menu a {
  display: block;
  padding: 16px 15px;
  color: var(--swp-color-text);
  font-size: 13px;
  font-weight: 700;
  line-height: 1.3;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .035em;
  white-space: nowrap;
}

.site-menu > li > a {
  position: relative;
}

.site-menu > li > a::after {
  content: "";
  position: absolute;
  left: 15px;
  right: 15px;
  bottom: 9px;
  height: 2px;
  background: currentColor;
  transform: scaleX(0);
  transform-origin: center;
  transition: transform .18s ease;
}

.site-menu > li > a:hover,
.site-menu > li > a:focus,
.site-menu > li.current-menu-item > a,
.site-menu > li.current-menu-ancestor > a,
.site-menu > li.current_page_item > a,
.site-menu > li.current_page_ancestor > a {
  background: transparent;
  color: var(--swp-color-text);
}

.site-menu > li > a:hover::after,
.site-menu > li > a:focus::after,
.site-menu > li.current-menu-item > a::after,
.site-menu > li.current-menu-ancestor > a::after,
.site-menu > li.current_page_item > a::after,
.site-menu > li.current_page_ancestor > a::after {
  transform: scaleX(1);
}

.site-menu .sub-menu {
  position: absolute;
  top: 100%;
  left: 0;
  right: auto;
  z-index: 1000;
  display: block;
  width: 210px;
  margin: 0;
  padding: 0;
  background: var(--swp-color-primary-soft);
  list-style: none;
  box-shadow: 0 10px 24px rgba(31, 41, 51, 0.12);
  opacity: 0;
  visibility: hidden;
  pointer-events: none;
  transform: translateY(8px);
  transition:
    opacity 180ms ease,
    transform 180ms ease,
    visibility 0s linear 180ms;
}

.site-menu .sub-menu .sub-menu {
  top: 0;
  left: 100%;
  right: auto;
  transform: translateX(8px);
}

.site-menu li:hover > .sub-menu,
.site-menu li:focus-within > .sub-menu {
  opacity: 1;
  visibility: visible;
  pointer-events: auto;
  transform: translateY(0);
  transition-delay: 0s;
}

.site-menu .sub-menu li:hover > .sub-menu,
.site-menu .sub-menu li:focus-within > .sub-menu {
  transform: translateX(0);
}

.site-menu .sub-menu a {
  width: 100%;
  padding: 12px 14px;
  border-bottom: 0;
  background: transparent;
  color: var(--swp-color-text);
  font-weight: 500;
  line-height: 1.4;
  text-align: left;
  white-space: normal;
  box-sizing: border-box;
}

.site-menu .sub-menu a:hover,
.site-menu .sub-menu a:focus {
  background: transparent;
  color: var(--swp-color-primary);
}


.site-submenu-toggle {
  display: none;
}

.site-menu-toggle,
.swp-mobile-menu-header,
.swp-mobile-menu-footer {
  display: none;
}

body.menu-open {
  overflow: hidden;
}


/* Tablet/mobile navigation. The breakpoint intentionally occurs before
 * the desktop menu has room to wrap. */
@media screen and (max-width: 1199px) {
  /* Mobile submenus are controlled only by their explicit toggle. */
  .site-menu li:hover > .sub-menu,
  .site-menu li:focus-within > .sub-menu {
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
  }

  .site-menu .menu-item-has-children.is-submenu-open > .sub-menu {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
  }

  .site-header__inner {
    min-height: 76px;
  }

  .site-title {
    max-width: calc(100vw - 110px);
    font-size: clamp(24px, 4vw, 30px);
  }

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

  .site-header--brand-right .site-branding {
    margin-left: auto;
    padding-left: 64px;
    text-align: right;
  }

  .site-header--brand-right .site-menu-toggle {
    right: auto;
    left: var(--swp-site-gutter, 24px);
  }

  .site-header--brand-right .site-menu-toggle.is-open {
    right: auto;
    left: var(--swp-site-gutter, 24px);
  }

  .swp-header-logo--desktop {
    max-width: min(240px, calc(100vw - 120px)) !important;
    max-height: 46px !important;
  }

  .site-menu-toggle {
    -webkit-tap-highlight-color: transparent;
    position: absolute;
    top: 50%;
    right: var(--swp-site-gutter, 24px);
    z-index: 10003;
    transform: translateY(-50%);
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 48px;
    height: 48px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--swp-color-text);
    font: inherit;
    font-size: 30px;
    line-height: 1;
    cursor: pointer;
  }


  /*
   * Navigation toggle is an icon control, not a standard CTA button.
   * Keep it transparent in hover/focus/open states so closing the menu does
   * not leave the hamburger looking like a blue filled button.
   */
  .site-menu-toggle:hover,
  .site-menu-toggle:focus,
  .site-menu-toggle:active,
  .site-menu-toggle.is-open,
  .site-menu-toggle.is-open:hover,
  .site-menu-toggle.is-open:focus,
  .site-menu-toggle.is-open:active {
    border: 0;
    background: transparent;
    color: var(--swp-color-text);
    box-shadow: none;
  }

  .site-menu-toggle:focus:not(:focus-visible) {
    outline: 0;
  }


  .site-menu-toggle.is-open {
    position: fixed;
    top: 14px;
    right: 24px;
    transform: none;
  }

  .site-menu-toggle.is-open span {
    font-size: 0;
  }

  .site-menu-toggle.is-open span::before {
    content: "\00d7";
    font-size: 36px;
    line-height: 1;
  }

  .site-navigation {
    position: fixed;
    top: 0;
    left: 0;
    z-index: 10002;
    display: flex;
    flex-direction: column;
    width: 100%;
    height: 100vh;
    height: 100dvh;
    margin: 0;
    overflow: hidden;
    background: var(--swp-color-primary-soft);
    transform: translateY(-100%);
    visibility: hidden;
    opacity: 0;
    pointer-events: none;
    transition: transform 0.35s ease, opacity 0.25s ease, visibility 0s linear 0.35s;
  }

  .site-navigation.is-open,
  .site-navigation.mobile-menu-open {
    transform: translateY(0);
    visibility: visible;
    opacity: 1;
    pointer-events: auto;
    transition: transform 0.35s ease, opacity 0.25s ease;
  }

  .swp-mobile-menu-header {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    padding: 22px 88px 16px 28px;
    box-sizing: border-box;
  }

  .swp-mobile-menu-header a {
    display: inline-flex;
    color: var(--swp-color-text);
    font-size: clamp(28px, 6vw, 42px);
    font-weight: 700;
    line-height: 1.15;
    text-align: left;
    text-decoration: none;
  }

  /* Preserve the configured brand side when the fullscreen menu opens.
   * This avoids the logo and menu control swapping sides on every toggle. */
  .site-header--brand-right .swp-mobile-menu-header {
    padding-right: 28px;
    padding-left: 88px;
    text-align: right;
  }

  .site-header--brand-right .swp-mobile-menu-header a {
    justify-content: flex-end;
    text-align: right;
  }

  .swp-header-logo--mobile {
    display: block;
    width: auto !important;
    height: auto !important;
    max-width: min(260px, calc(100vw - 130px)) !important;
    max-height: 54px !important;
    object-fit: contain;
  }

  .site-menu {
    display: flex;
    flex: 1 1 auto;
    flex-direction: column;
    align-items: stretch;
    justify-content: center;
    width: min(88vw, 520px);
    min-height: 0;
    margin: 0 auto;
    padding: 8px 0;
    overflow-y: auto;
    box-sizing: border-box;
  }

  .site-menu li,
  .site-menu .sub-menu,
  .site-menu .sub-menu li {
    position: static;
    display: block;
    width: 100%;
    margin: 0;
    padding: 0;
  }

  .site-menu > li {
    border: 0;
  }

  .site-menu > li + li {
    margin-top: 2px;
  }

  .site-menu a,
  .site-menu .sub-menu a {
    -webkit-tap-highlight-color: transparent;
    display: block;
    width: 100%;
    margin: 0;
    padding: 11px 46px;
    background: transparent;
    color: var(--swp-color-text);
    font-size: clamp(18px, 4.5vw, 24px);
    font-weight: 650;
    line-height: 1.25;
    text-align: center;
    text-decoration: none;
    text-transform: uppercase;
    letter-spacing: .04em;
    white-space: normal;
    box-sizing: border-box;
  }

  .site-menu .menu-item-has-children {
    position: relative;
  }

  .site-menu .menu-item-has-children > a {
    padding-left: 46px;
    padding-right: 46px;
  }

  .site-menu .sub-menu {
    position: static;
    display: block;
    width: 100%;
    max-height: 0;
    margin: 0;
    padding: 0;
    overflow: hidden;
    box-shadow: none;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(-6px);
    transition:
      max-height 260ms ease,
      opacity 180ms ease,
      transform 220ms ease,
      padding 220ms ease,
      visibility 0s linear 260ms;
  }

  .site-menu .menu-item-has-children.is-submenu-open > .sub-menu {
    max-height: 720px;
    padding: 2px 0 8px;
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
    transition-delay: 0s;
  }

  .site-menu .sub-menu a {
    padding: 9px 46px;
    background: transparent;
    font-size: clamp(15px, 3.8vw, 19px);
    font-weight: 500;
    opacity: .82;
  }

  .site-menu .sub-menu li + li {
    margin-top: 1px;
  }

  .site-menu .sub-menu .sub-menu {
    transform: translateY(-6px);
  }

  .site-menu .sub-menu .menu-item-has-children.is-submenu-open > .sub-menu {
    transform: translateY(0);
  }

  .site-submenu-toggle {
    -webkit-tap-highlight-color: transparent;
    position: absolute;
    top: 50%;
    right: 8px;
    z-index: 3;
    display: inline-flex;
    align-items: center;
    justify-content: center;
    width: 36px;
    height: 36px;
    margin: 0;
    padding: 0;
    border: 0;
    background: transparent;
    color: var(--swp-color-text);
    box-shadow: none;
    cursor: pointer;
    transform: translateY(-50%);
  }

  .site-submenu-toggle:hover,
  .site-submenu-toggle:focus,
  .site-submenu-toggle:active {
    border: 0;
    background: transparent;
    color: var(--swp-color-text);
    box-shadow: none;
  }

  .site-submenu-toggle:focus:not(:focus-visible) {
    outline: 0;
  }

  .site-submenu-toggle__icon {
    position: relative;
    display: block;
    width: 16px;
    height: 16px;
  }

  .site-submenu-toggle__icon::before,
  .site-submenu-toggle__icon::after {
    content: "";
    position: absolute;
    top: 50%;
    left: 50%;
    width: 14px;
    height: 2px;
    background: currentColor;
    transform: translate(-50%, -50%);
  }

  .site-submenu-toggle__icon::after {
    transform: translate(-50%, -50%) rotate(90deg);
    transition: transform .16s ease;
  }

  .site-submenu-toggle[aria-expanded="true"] .site-submenu-toggle__icon::after {
    transform: translate(-50%, -50%) rotate(0deg);
  }

  /* Mobile navigation is intentionally underline-free.
   * Desktop uses an animated ::after underline, but on mobile that combined
   * with text-decoration on focus/current states and produced the double-line
   * effect visible after tapping a link. */
  .site-menu > li > a::after {
    display: none;
  }

  .site-menu a:hover,
  .site-menu a:focus,
  .site-menu a:active,
  .site-menu > li.current-menu-item > a,
  .site-menu > li.current-menu-ancestor > a,
  .site-menu > li.current_page_item > a,
  .site-menu > li.current_page_ancestor > a {
    background: transparent;
    color: var(--swp-color-text);
    text-decoration: none;
  }

  .site-menu .sub-menu a:hover,
  .site-menu .sub-menu a:focus {
    opacity: 1;
  }

  .swp-mobile-menu-footer {
    display: block;
    flex: 0 0 auto;
    width: 100%;
    padding: 18px 28px 24px;
    border-top: 1px solid var(--swp-color-border);
    text-align: center;
    box-sizing: border-box;
  }

  .swp-mobile-menu-footer .swp-mobile-menu-widget,
  .swp-mobile-menu-footer .swp-mobile-menu-widget > :last-child {
    margin-bottom: 0;
  }

  body.admin-bar .site-navigation {
    top: 32px;
    height: calc(100vh - 32px);
    height: calc(100dvh - 32px);
  }

  body.admin-bar .site-menu-toggle.is-open {
    top: 46px;
  }
}

@media screen and (max-width: 782px) {
  .site-menu-toggle {
    right: 16px;
  }

  .site-menu-toggle.is-open {
    right: 16px;
  }

  .site-header--brand-right .site-menu-toggle,
  .site-header--brand-right .site-menu-toggle.is-open {
    right: auto;
    left: 16px;
  }

  body.admin-bar .site-navigation {
    top: 46px;
    height: calc(100vh - 46px);
    height: calc(100dvh - 46px);
  }

  body.admin-bar .site-menu-toggle.is-open {
    top: 60px;
  }
}

@media (prefers-reduced-motion: reduce) {
  .site-navigation,
  .site-navigation.is-open,
  .site-navigation.mobile-menu-open {
    transition: none;
  }
}



/* SWP bundle: swp-responsive */
/* ---------------- SWP Responsive Layout ----------------
 * Header/navigation responsiveness lives in navigation.css.
 * This file is intentionally limited to general content/grid behavior.
 */

.outer_wrap {
    width: 100%;
    max-width: var(--swp-site-max-width, 1280px);
    margin-left: auto;
    margin-right: auto;
    box-sizing: border-box;
}

@media screen and (max-width: 1024px) {
    body {
        padding: 0;
    }

    .content .post .flex_90,
    .content .flex_66 {
        width: 100%;
    }

    .content {
        padding: 30px;
        margin: 0;
    }

    .post:not(.swp-post-card):not(.swp-content-entry),
    .type-post:not(.swp-post-card):not(.swp-content-entry),
    .type-page:not(.swp-post-card):not(.swp-content-entry) {
        margin: 0 0 30px;
        border: 0;
        box-shadow: none;
    }

    .gallery-caption,
    .wp-caption-text,
    .post .flex_10 {
        display: none;
    }

    
}

@media screen and (max-width: 568px) {
    .content .flex_66,
    .content .post .flex_90 {
        width: 100%;
        padding: 0;
        margin: 0;
    }

    .content {
        padding: 20px;
    }

    .post:not(.swp-post-card):not(.swp-content-entry),
    .type-post:not(.swp-post-card):not(.swp-content-entry),
    .type-page:not(.swp-post-card):not(.swp-content-entry) {
        padding: 20px 0 0;
    }

    object,
    video,
    audio,
    iframe {
        max-width: 100%;
        width: 100%;
    }
    #search {
        display: none;
    }
}


/* SWP bundle: swp-scroll-navigation */
/* SWP Framework — Smooth Scroll, Anchors, and Back to Top */

:root {
    --swp-scroll-offset: 12px;
}

html.swp-smooth-scroll {
    scroll-behavior: smooth;
    scroll-padding-top: var(--swp-scroll-offset);
}

html.swp-smooth-scroll [id] {
    scroll-margin-top: var(--swp-scroll-offset);
}

.swp-back-to-top {
    position: fixed;
    right: 24px;
    bottom: 24px;
    z-index: 1000;
    width: 44px;
    height: 44px;
    opacity: 0;
    visibility: hidden;
    pointer-events: none;
    transform: translateY(8px);
    transition: opacity 160ms ease, transform 160ms ease, visibility 160ms ease;
}

.swp-back-to-top.is-visible {
    opacity: 1;
    visibility: visible;
    pointer-events: auto;
    transform: translateY(0);
}

.swp-back-to-top a {
    display: flex;
    width: 100%;
    height: 100%;
    align-items: center;
    justify-content: center;
    box-sizing: border-box;
    padding: 0;
    background: var(--swp-color-primary);
    color: var(--swp-color-white);
    text-decoration: none;
}

.swp-back-to-top--circle a {
    border-radius: 50%;
}

.swp-back-to-top--square a {
    border-radius: 0;
}

.swp-back-to-top svg {
    width: 22px;
    height: 22px;
    display: block;
    fill: none;
    stroke: currentColor;
    stroke-width: 2.25;
    stroke-linecap: round;
    stroke-linejoin: round;
}

.swp-back-to-top a:hover,
.swp-back-to-top a:focus {
    background: var(--swp-color-primary);
    color: var(--swp-color-white);
}

.swp-back-to-top a:focus-visible {
    outline: 2px solid var(--swp-color-primary-dark);
    outline-offset: 3px;
}

@media (max-width: 767px) {
    .swp-back-to-top {
        right: 16px;
        bottom: 16px;
        width: 42px;
        height: 42px;
    }
}

@media (prefers-reduced-motion: reduce) {
    html.swp-smooth-scroll {
        scroll-behavior: auto;
    }

    .swp-back-to-top {
        transition: none;
    }
}


/* SWP bundle: swp-sections */
/* SWP reusable section wrapper: full-width breakout or normal container width. */
.swp-section {
  box-sizing: border-box;
  width: 100vw;
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw);
  position: relative;
  isolation: isolate;
  background-color: var(--swp-section-background, transparent);
  background-image: var(--swp-section-background-image, none);
  background-size: var(--swp-section-background-size, cover);
  background-position: var(--swp-section-background-position, center center);
  background-repeat: var(--swp-section-background-repeat, no-repeat);
}

.swp-section::before {
  content: "";
  position: absolute;
  inset: 0;
  z-index: 0;
  pointer-events: none;
  background: var(--swp-section-overlay, transparent);
}


.swp-section__inner {
  box-sizing: border-box;
  width: 100%;
  max-width: var(--swp-site-max-width, 1280px);
  margin: 0 auto;
  position: relative;
  z-index: 1;
  padding: var(--swp-section-padding, 40px 20px);
}

.swp-section__inner::before,
.swp-section__inner::after {
  content: "";
  display: table;
}

.swp-section__inner::after {
  clear: both;
}


.swp-section--container {
  width: 100%;
  max-width: var(--swp-site-max-width, 1280px);
  margin-left: auto;
  margin-right: auto;
}


/* SWP bundle: swp-artist-content */
/*
 * SWP Framework — Artist Content
 */

.swp-artist-bio,
.swp-artist-videos,
.swp-artist-podcast {
  width: 100%;
  max-width: var(--swp-site-max-width, 1280px);
  margin-inline: auto;
}

.swp-artist-bio {
  --swp-artist-photo-width: 30%;
  display: grid;
  grid-template-columns: minmax(0, var(--swp-artist-photo-width)) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
}

.swp-artist-bio--photo-size-small {
  --swp-artist-photo-width: 24%;
}

.swp-artist-bio--photo-size-medium {
  --swp-artist-photo-width: 30%;
}

.swp-artist-bio--photo-size-large {
  --swp-artist-photo-width: 38%;
}

.swp-artist-bio--no-photo,
.swp-artist-bio--no-text {
  grid-template-columns: 1fr;
}

.swp-artist-bio--no-photo .swp-artist-bio__text {
  max-width: 900px;
}

.swp-artist-bio--no-text .swp-artist-bio__photo {
  max-width: 480px;
}

.swp-artist-bio--photo-right .swp-artist-bio__photo { order: 2; }
.swp-artist-bio--photo-right .swp-artist-bio__text { order: 1; }

.swp-artist-bio__photo {
  align-self: start;
}

.swp-artist-bio__photo img {
  display: block;
  width: 100%;
  max-width: 100%;
  height: auto;
  margin: 0;
}

.swp-artist-bio--photo-right .swp-artist-bio__photo img {
  margin-left: auto;
}

.swp-artist-bio__text > :first-child { margin-top: 0; }
.swp-artist-bio__text > :last-child { margin-bottom: 0; }

.swp-artist-videos {
  display: grid;
  gap: clamp(1rem, 2vw, 1.5rem);
}

.swp-artist-videos--count-1 {
  grid-template-columns: minmax(0, 960px);
  justify-content: center;
}

.swp-artist-videos--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }
.swp-artist-videos--count-3 { grid-template-columns: repeat(3, minmax(0, 1fr)); }
.swp-artist-videos--count-4 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.swp-artist-video__frame {
  position: relative;
  width: 100%;
  aspect-ratio: 16 / 9;
  overflow: hidden;
  background: #000;
}

.swp-artist-video__frame iframe {
  position: absolute;
  inset: 0;
  width: 100%;
  height: 100%;
  border: 0;
}

.swp-artist-podcast__episodes {
  display: grid;
  grid-template-columns: repeat(2, minmax(0, 1fr));
  gap: clamp(1.25rem, 3vw, 2.5rem);
}

.swp-artist-podcast--count-1 .swp-artist-podcast__episodes {
  grid-template-columns: minmax(0, 960px);
  justify-content: center;
}

.swp-artist-podcast__episode-title {
  margin: .18rem auto 0 !important;
  max-width: 86%;
  font-size: .88rem !important;
  line-height: 1.22 !important;
  text-align: center;
  font-weight: 600;
}

.swp-artist-podcast__services {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: .8rem;
  margin-top: clamp(1.25rem, 3vw, 2rem);
}

.swp-artist-podcast__service {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  gap: .55rem;
  min-height: 44px;
  padding: .65rem 1rem;
  background: var(--swp-color-primary);
  color: #fff !important;
  text-decoration: none;
  line-height: 1;
}

.swp-artist-podcast__service:hover,
.swp-artist-podcast__service:focus {
  background: var(--swp-color-primary-dark);
  color: #fff !important;
}

.swp-artist-podcast__service svg,
.swp-artist-podcast__service .swp-social-fill {
  display: block;
  width: 22px !important;
  height: 22px !important;
  fill: currentColor;
}

.swp-artist-podcast__service .swp-social-cutout {
  fill: var(--swp-color-primary);
}

.swp-artist-podcast__fallback {
  text-align: center;
}

@media (max-width: 760px) {
  .swp-artist-bio,
  .swp-artist-videos--count-2,
  .swp-artist-videos--count-3,
  .swp-artist-videos--count-4,
  .swp-artist-podcast__episodes {
    grid-template-columns: 1fr;
  }

  .swp-artist-bio__photo,
  .swp-artist-bio__text,
  .swp-artist-bio--photo-right .swp-artist-bio__photo,
  .swp-artist-bio--photo-right .swp-artist-bio__text {
    order: initial;
  }

  .swp-artist-bio__photo {
    max-width: 420px;
    margin-inline: auto;
  }

  .swp-artist-bio__photo img,
  .swp-artist-bio--photo-right .swp-artist-bio__photo img {
    width: auto;
    max-width: 100%;
    height: auto;
    max-height: 520px;
    margin-inline: auto;
    object-fit: contain;
    object-position: top center;
  }
}

/* Press / EPK */
.swp-press-page .swp-site-container {
  max-width: 1380px;
}

.swp-press-kit {
  width: 100%;
  max-width: 1320px;
  margin-inline: auto;
  padding-bottom: clamp(2rem, 4vw, 3.5rem);
}

.swp-press-kit__header {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1rem;
  margin-bottom: clamp(1.75rem, 3.5vw, 3rem);
  padding: .25rem 0 1.25rem;
  border-bottom: 1px solid rgba(0,0,0,.12);
}

.swp-press-kit__title,
.swp-press-kit__section-title {
  margin-top: 0;
}

.swp-press-kit__title { margin-bottom: 0; }

.swp-press-kit__section {
  margin: clamp(2rem, 4.5vw, 3.75rem) 0;
}

.swp-press-kit__section-title {
  margin-bottom: 1.25rem;
  text-align: center;
}

.swp-press-kit__epk-button,
.swp-press-kit__photo-download {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 44px;
  padding: .7rem 1rem;
  background: var(--swp-color-primary);
  color: #fff !important;
  text-decoration: none;
}

.swp-press-kit__epk-button:hover,
.swp-press-kit__epk-button:focus,
.swp-press-kit__photo-download:hover,
.swp-press-kit__photo-download:focus {
  background: var(--swp-color-primary-dark);
  color: #fff !important;
}

.swp-press-kit__photos {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}

.swp-press-kit__photos--count-1 { grid-template-columns: minmax(0, 520px); }
.swp-press-kit__photos--count-2 { grid-template-columns: repeat(2, minmax(0, 1fr)); }

.swp-press-kit__photo-card {
  min-width: 0;
  display: flex;
  flex-direction: column;
  gap: .75rem;
}

.swp-press-kit__photo img {
  display: block;
  width: 100%;
  aspect-ratio: 2 / 3;
  object-fit: cover;
}

.swp-press-kit__photo-download {
  width: auto;
  align-self: center;
  min-width: min(100%, 190px);
  margin-top: 0;
}

.swp-press-kit__stats {
  display: grid;
  grid-auto-flow: column;
  grid-auto-columns: minmax(0, 1fr);
  gap: clamp(.75rem, 1.5vw, 1.5rem);
  align-items: start;
}

.swp-press-kit__stat {
  min-width: 0;
  padding: .35rem .5rem;
  text-align: center;
}

.swp-press-kit__stat-icon,
.swp-press-kit__stat-value,
.swp-press-kit__stat-platform,
.swp-press-kit__stat-metric {
  display: block;
}

.swp-press-kit__stat-icon {
  display: flex;
  align-items: center;
  justify-content: center;
  width: clamp(42px, 3.8vw, 54px);
  height: clamp(42px, 3.8vw, 54px);
  margin: 0 auto .2rem;
  color: currentColor;
}

.swp-press-kit__stat-icon .swp-social-links__icon,
.swp-press-kit__stat-icon svg {
  display: block;
  width: clamp(42px, 3.8vw, 54px) !important;
  height: clamp(42px, 3.8vw, 54px) !important;
  max-width: none !important;
  max-height: none !important;
  fill: currentColor;
}

.swp-press-kit__stat-platform {
  margin-top: 0;
  margin-bottom: .35rem;
  font-size: .95rem;
  font-weight: 600;
  line-height: 1.15;
}

.swp-press-kit__stat-metrics {
  display: flex;
  justify-content: center;
  align-items: flex-start;
  gap: clamp(.45rem, 1vw, .8rem);
  flex-wrap: nowrap;
}

.swp-press-kit__stat-metric-group {
  min-width: 0;
  white-space: nowrap;
}

.swp-press-kit__stat-value {
  font-size: clamp(1.15rem, 1.8vw, 1.6rem);
  line-height: 1.05;
}

.swp-press-kit__stat-metric {
  margin-top: .2rem;
  font-size: .82rem;
  font-weight: 700;
  line-height: 1.2;
  opacity: .88;
}

.swp-press-bio {
  --swp-press-photo-width: 26%;
  display: grid;
  grid-template-columns: minmax(0, var(--swp-press-photo-width)) minmax(0, 1fr);
  gap: clamp(1.5rem, 4vw, 4rem);
  align-items: start;
}

.swp-press-bio--photo-size-small { --swp-press-photo-width: 20%; }
.swp-press-bio--photo-size-medium { --swp-press-photo-width: 26%; }
.swp-press-bio--photo-size-large { --swp-press-photo-width: 32%; }
.swp-press-bio--no-photo { grid-template-columns: 1fr; }
.swp-press-bio--photo-right .swp-press-bio__photo { order: 2; }
.swp-press-bio--photo-right .swp-press-bio__text { order: 1; }

.swp-press-bio__photo img {
  display: block;
  width: 100%;
  height: auto;
}

.swp-press-bio__text > :first-child { margin-top: 0; }
.swp-press-bio__text > :last-child { margin-bottom: 0; }

.swp-press-kit__video {
  width: 100%;
  max-width: 840px;
  margin-inline: auto;
}

.swp-press-kit__video iframe {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  height: auto;
}

.swp-press-kit__media-grid {
  display: grid;
  grid-template-columns: repeat(3, minmax(0, 1fr));
  gap: clamp(1rem, 2.5vw, 2rem);
}

.swp-press-kit__media-card {
  min-width: 0;
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.025);
}

.swp-press-kit__media-image img {
  display: block;
  width: 100%;
  aspect-ratio: 16 / 9;
  object-fit: cover;
}

.swp-press-kit__media-content {
  padding: 1rem;
  text-align: left;
}

.swp-press-kit__media-title {
  margin: 0 0 .45rem;
  font-size: 1.05rem;
  line-height: 1.3;
}

.swp-press-kit__media-publication,
.swp-press-kit__media-date {
  margin: 0;
  font-size: .86rem;
  opacity: .8;
}

.swp-press-kit__media-publication {
  font-weight: 600;
}

.swp-press-kit__media-date {
  margin-top: .2rem;
  margin-bottom: .9rem;
}

.swp-press-kit__media-button {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-height: 40px;
  padding: .55rem .9rem;
  background: var(--swp-color-primary);
  color: #fff !important;
  text-decoration: none;
}

.swp-press-kit__media-button:hover,
.swp-press-kit__media-button:focus {
  background: var(--swp-color-primary-dark);
  color: #fff !important;
}

.swp-press-kit__epk-footer {
  margin-top: clamp(2.5rem, 5vw, 4rem);
  margin-bottom: 0;
  padding-top: 2rem;
  border-top: 1px solid rgba(0,0,0,.12);
}

.swp-press-kit__epk-callout {
  display: flex;
  align-items: center;
  justify-content: space-between;
  gap: 1.5rem;
  padding: clamp(1.25rem, 3vw, 2rem);
  border: 1px solid rgba(0,0,0,.12);
  background: rgba(0,0,0,.025);
}

.swp-press-kit__epk-copy {
  max-width: 720px;
}

.swp-press-kit__epk-title {
  margin: 0 0 .35rem;
}

.swp-press-kit__epk-copy p {
  margin: 0;
}

@media (max-width: 900px) {
  .swp-press-kit__stats,
  .swp-press-kit__media-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}

@media (max-width: 760px) {
  .swp-press-kit__header,
  .swp-press-kit__epk-callout {
    align-items: flex-start;
    flex-direction: column;
  }

  .swp-press-kit__photos,
  .swp-press-kit__photos--count-2,
  .swp-press-bio {
    grid-template-columns: 1fr;
  }

  .swp-press-bio__photo,
  .swp-press-bio__text,
  .swp-press-bio--photo-right .swp-press-bio__photo,
  .swp-press-bio--photo-right .swp-press-bio__text {
    order: initial;
  }

  .swp-press-bio__photo {
    max-width: 420px;
    margin-inline: auto;
  }
}

@media (max-width: 520px) {
  .swp-press-kit__stats,
  .swp-press-kit__media-grid { grid-template-columns: 1fr; }
}


/* SWP bundle: swp-events */
/*
 * SWP Framework — Events / Tour
 *
 * The Tour layout intentionally favors a clean, poster-like hierarchy:
 * date/time, large location, venue, action.
 * Project-specific colors can be overridden in style-theme.css.
 */

:root {
  --swp-event-venue-color: var(--swp-color-primary-dark);
  --swp-event-warning-bg: #fff4d6;
  --swp-event-warning-border: #c27a16;
  --swp-event-warning-text: #744500;
  --swp-event-row-padding-block: 1.1rem;
  --swp-event-row-padding-inline: clamp(1rem, 2.5vw, 1.5rem);
  --swp-event-row-min-height: 112px;
  --swp-event-action-height: 52px;
}

.swp-events-archive {
  padding-block: clamp(2.5rem, 5vw, 4.25rem);
}

.swp-events-archive--hero-full,
.swp-events-archive--hero-overlay {
  padding-top: 0;
}

.swp-events-header {
  max-width: 820px;
  margin: 0 auto 1.75rem;
  text-align: center;
}

.swp-events-title {
  margin: 0;
}

.swp-events-embed__title {
  margin: 0 0 1.75rem;
  text-align: center;
}

.swp-events-description {
  margin-top: 1rem;
  color: var(--swp-color-muted);
}

.swp-event-list {
  border-top: 0;
}

.swp-event-list--layout-rows .swp-event:first-child {
  border-top: 1px solid var(--swp-color-border);
}

.swp-event {
  position: relative;
  display: grid;
  grid-template-columns: minmax(0, 1fr) minmax(170px, auto);
  gap: clamp(1.5rem, 4vw, 3rem);
  align-items: center;
  min-height: var(--swp-event-row-min-height);
  padding: var(--swp-event-row-padding-block) var(--swp-event-row-padding-inline);
  margin-inline: calc(var(--swp-event-row-padding-inline) * -1);
  border-bottom: 1px solid var(--swp-color-border);
  box-sizing: border-box;
  transition: background-color .18s ease;
}

.swp-event--clickable {
  cursor: pointer;
}

.swp-event--clickable:hover,
.swp-event--clickable:focus-within {
  background: var(--swp-color-surface-alt);
}

.swp-event__click-target {
  position: absolute;
  inset: 0;
  z-index: 2;
}

.swp-event__click-target:focus-visible {
  outline: 3px solid var(--swp-color-primary);
  outline-offset: -3px;
}

.swp-event__details,
.swp-event__action {
  position: relative;
  z-index: 1;
}

.swp-event__schedule {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  gap: .45rem 1rem;
  margin: 0 0 .45rem;
  font-size: clamp(.98rem, 1.55vw, 1.2rem);
  font-weight: 700;
  letter-spacing: .035em;
  line-height: 1.2;
  color: var(--swp-color-text);
}

.swp-event__schedule-item {
  display: inline-flex;
  align-items: center;
  gap: .25rem;
}

.swp-event__schedule-item + .swp-event__schedule-item {
  position: relative;
  padding-left: 1rem;
}

.swp-event__schedule-item + .swp-event__schedule-item::before {
  content: "";
  position: absolute;
  left: 0;
  width: 1px;
  height: 1.1em;
  background: var(--swp-color-border);
}


.swp-event__headline {
  margin: 0;
  font-size: clamp(1.75rem, 3.15vw, 2.6rem);
  font-weight: 800;
  letter-spacing: .015em;
  line-height: .98;
  text-transform: uppercase;
  color: var(--swp-color-text);
}

.swp-event__venue {
  margin: .45rem 0 0;
  font-size: clamp(1rem, 1.75vw, 1.35rem);
  font-style: italic;
  font-weight: 500;
  letter-spacing: .04em;
  line-height: 1.15;
  text-transform: uppercase;
  color: var(--swp-event-venue-color);
}

.swp-event__note {
  margin: .55rem 0 0;
  font-size: clamp(.95rem, 1.45vw, 1.1rem);
  font-weight: 600;
  letter-spacing: .025em;
  line-height: 1.35;
  text-transform: uppercase;
  color: var(--swp-color-muted);
}

.swp-event__supporting {
  display: flex;
  flex-wrap: wrap;
  gap: .35rem 1rem;
  margin: .65rem 0 0;
  color: var(--swp-color-muted);
}

.swp-event__supporting > span + span::before {
  content: "•";
  margin-right: 1rem;
  color: var(--swp-color-border);
}

.swp-event__action {
  display: flex;
  justify-content: flex-end;
  align-items: center;
}

.swp-event__button,
.swp-event__status {
  display: inline-flex;
  align-items: center;
  justify-content: center;
  min-width: clamp(165px, 16vw, 220px);
  min-height: var(--swp-event-action-height);
  padding: .85rem 1.4rem;
  box-sizing: border-box;
  border: 1px solid var(--swp-color-primary-dark);
  font-size: clamp(.95rem, 1.5vw, 1.2rem);
  font-weight: 600;
  letter-spacing: .04em;
  line-height: 1;
  text-align: center;
  text-transform: uppercase;
  white-space: nowrap;
}

.swp-event__button {
  background: var(--swp-color-primary-dark);
  border-color: var(--swp-color-primary-dark);
  color: #fff;
}

.swp-event--clickable:hover .swp-event__button,
.swp-event--clickable:focus-within .swp-event__button {
  background: var(--swp-color-primary);
  border-color: var(--swp-color-primary);
}

.swp-event__button--low-tickets,
.swp-event__status--low-tickets {
  background: var(--swp-event-warning-bg);
  border-color: var(--swp-event-warning-border);
  color: var(--swp-event-warning-text);
}

.swp-event--clickable:hover .swp-event__button--low-tickets,
.swp-event--clickable:focus-within .swp-event__button--low-tickets {
  background: var(--swp-event-warning-border);
  border-color: var(--swp-event-warning-border);
  color: #fff;
}

.swp-event__status {
  background: var(--swp-color-surface);
  color: var(--swp-color-muted);
}

.swp-event__status--sold-out {
  border-color: var(--swp-color-border);
  background: var(--swp-color-surface-alt);
  color: var(--swp-color-text);
}

.swp-events-empty {
  padding: 1.5rem 0;
  border-top: 1px solid var(--swp-color-border);
  border-bottom: 1px solid var(--swp-color-border);
  color: var(--swp-color-muted);
  text-align: center;
}

.swp-events-empty > p {
  margin: 0;
  color: var(--swp-color-text);
  font-size: clamp(1.3rem, 2vw, 1.65rem);
  font-weight: 700;
  line-height: 1.35;
}

.swp-events-empty__signup {
  margin: 1.75rem auto 0;
  color: var(--swp-color-text);
}

.swp-events-empty__signup .swp-mailing-list {
  margin-inline: auto;
}

.swp-events-empty__signup .swp-mailing-list__heading {
  margin-bottom: .65rem;
  font-size: clamp(1.45rem, 2vw, 1.9rem);
  line-height: 1.2;
}

.swp-events-empty__signup .swp-mailing-list__description {
  max-width: 680px;
  margin: 0 auto 1.35rem;
  line-height: 1.6;
}


.swp-event__media {
  display: none;
}

.swp-event__image {
  display: block;
  width: 100%;
  height: 100%;
  margin: 0;
  padding: 0;
  object-fit: cover;
}

.swp-event-list--layout-cards .swp-event__image {
  position: absolute;
  inset: 0;
  width: 100% !important;
  height: 100% !important;
  max-width: none;
  margin: 0 !important;
  object-fit: cover;
}

.swp-event-list--layout-cards {
  display: grid;
  gap: clamp(1.25rem, 2.5vw, 1.85rem);
  border-top: 0;
}

.swp-event-list--layout-cards.swp-event-list--columns-2 {
  grid-template-columns: repeat(2, minmax(0, 1fr));
}

.swp-event-list--layout-cards.swp-event-list--columns-3 {
  grid-template-columns: repeat(3, minmax(0, 1fr));
}

.swp-event-list--layout-cards .swp-event {
  display: flex;
  flex-direction: column;
  align-items: stretch;
  gap: 0;
  min-height: 100%;
  margin-inline: 0;
  padding: 0;
  border: 1px solid var(--swp-color-border);
  background: var(--swp-color-white);
  overflow: hidden;
}

.swp-event-list--layout-cards .swp-event__media {
  position: relative;
  display: block;
  aspect-ratio: 16 / 9;
  margin: 0;
  padding: 0;
  background: transparent;
  line-height: 0;
  overflow: hidden;
}

.swp-event-list--layout-cards .swp-event__details {
  display: flex;
  flex: 1 1 auto;
  flex-direction: column;
  align-items: flex-start;
  width: 100%;
  padding: 1.1rem 1.1rem .8rem;
}

.swp-event-list--layout-cards .swp-event__schedule,
.swp-event-list--layout-cards .swp-event__headline,
.swp-event-list--layout-cards .swp-event__venue,
.swp-event-list--layout-cards .swp-event__supporting,
.swp-event-list--layout-cards .swp-event__note {
  text-align: left;
}

.swp-event-list--layout-cards .swp-event__headline {
  width: 100%;
  font-size: clamp(1.65rem, 2.4vw, 2.25rem);
}

.swp-event-list--layout-cards .swp-event__supporting {
  display: block;
  margin-top: .45rem;
}

.swp-event-list--layout-cards .swp-event__supporting > span {
  display: block;
}

.swp-event-list--layout-cards .swp-event__supporting > span + span::before {
  display: none;
}

.swp-event-list--layout-cards .swp-event__action {
  justify-content: stretch;
  width: 100%;
  padding: 0 1.1rem 1.1rem;
  margin-top: auto;
}

.swp-event-list--layout-cards .swp-event__button,
.swp-event-list--layout-cards .swp-event__status {
  width: 100%;
  min-width: 0;
}

@media screen and (max-width: 1100px) {
  .swp-event-list--layout-cards.swp-event-list--columns-3 {
    grid-template-columns: repeat(2, minmax(0, 1fr));
  }
}

@media screen and (max-width: 782px) {
  .swp-event-list--layout-cards,
  .swp-event-list--layout-cards.swp-event-list--columns-2,
  .swp-event-list--layout-cards.swp-event-list--columns-3 {
    grid-template-columns: 1fr;
  }

  .swp-event-list--layout-cards .swp-event {
    display: flex;
    text-align: left;
  }

  .swp-event-list--layout-cards .swp-event__details {
    align-items: flex-start;
  }

  .swp-event-list--layout-cards .swp-event__schedule {
    justify-content: flex-start;
  }

  .swp-event-list--layout-cards .swp-event__action {
    justify-content: stretch;
  }

  .swp-events-header {
    max-width: none;
    text-align: center;
  }

  .swp-event {
    grid-template-columns: 1fr;
    gap: 1.25rem;
    min-height: 0;
    padding-block: 1.15rem;
    text-align: center;
  }

  .swp-event__details {
    display: flex;
    flex-direction: column;
    align-items: center;
  }

  .swp-event__schedule {
    justify-content: center;
    font-size: .95rem;
  }

  .swp-event__headline {
    font-size: clamp(1.75rem, 7.5vw, 2.4rem);
    text-align: center;
  }

  .swp-event__venue,
  .swp-event__supporting {
    text-align: center;
  }

  .swp-event__supporting {
    justify-content: center;
  }

  .swp-event__action {
    justify-content: center;
  }

  .swp-event__waitlist-status {
    min-height: 54px;
  }

  .swp-event__button,
  .swp-event__status {
    min-width: min(100%, 280px);
    min-height: 54px;
  }
}

@media screen and (max-width: 520px) {
  .swp-event__schedule {
    font-size: .9rem;
  }

  .swp-event__headline {
    font-size: clamp(1.7rem, 9vw, 2.3rem);
  }

  .swp-event__button,
  .swp-event__status {
    width: 100%;
  }
}

@media (prefers-reduced-motion: reduce) {
  .swp-event {
    transition: none;
  }
}

.swp-events-embed__view-all {
  margin: 1.5rem 0 0;
  text-align: center;
}

.swp-events-embed__view-all-link {
  display: inline-block;
  padding: .25rem 0;
  border: 0;
  background: transparent;
  color: var(--swp-color-primary-dark);
  font-size: clamp(1.1rem, 1.6vw, 1.25rem);
  font-weight: 700;
  line-height: 1.2;
  text-decoration: none;
  text-transform: uppercase;
  letter-spacing: .04em;
}

.swp-events-embed__view-all-link:hover,
.swp-events-embed__view-all-link:focus {
  background: transparent;
  color: var(--swp-color-primary);
  text-decoration: none;
}


/*
 * Classic Editor / the_content compatibility.
 *
 * Shortcode output is rendered inside `.entry`, where SWP's global content
 * typography intentionally adds heading/paragraph margins. Those generic
 * rules should not alter the Events component. Keep embedded Events visually
 * identical to the same renderer used directly in a PHP template.
 */
.entry .swp-events-embed .swp-events-embed__title {
  margin: 0 0 1.75rem;
  max-width: none;
  text-align: center;
}

.entry .swp-events-embed .swp-event__schedule,
.entry .swp-events-embed .swp-event__venue,
.entry .swp-events-embed .swp-event__supporting,
.entry .swp-events-embed .swp-events-embed__view-all {
  max-width: none;
}

.entry .swp-events-embed .swp-event__schedule {
  margin-top: 0;
  margin-bottom: .45rem;
}

.entry .swp-events-embed .swp-event__headline {
  margin-top: 0;
  margin-bottom: 0;
  max-width: none;
  font-size: clamp(1.75rem, 3.15vw, 2.6rem);
  line-height: .98;
  letter-spacing: .015em;
}

.entry .swp-events-embed .swp-event__venue {
  margin-top: .45rem;
  margin-bottom: 0;
}

.entry .swp-events-embed .swp-event__supporting {
  margin-top: .65rem;
  margin-bottom: 0;
}

.entry .swp-events-embed .swp-events-embed__view-all {
  margin-top: 1.5rem;
  margin-bottom: 0;
}

@media screen and (max-width: 782px) {
  .entry .swp-events-embed .swp-event__headline {
    font-size: clamp(1.75rem, 7.5vw, 2.4rem);
  }
}

@media screen and (max-width: 520px) {
  .entry .swp-events-embed .swp-event__headline {
    font-size: clamp(1.7rem, 9vw, 2.3rem);
  }
}


/* Tour / Events archive hero */
.swp-events-hero { margin: 0; }
.swp-events-hero__media {
  position: relative;
  overflow: hidden;
  background: var(--swp-color-surface);
}
.swp-events-hero__image {
  display: block;
  width: 100%;
  height: 100%;
  object-fit: cover;
  object-position: center center;
}
.swp-events-hero--article {
  width: 100%;
  margin: 1.5rem auto 0;
}
.swp-events-hero--article .swp-events-hero__media {
  height: clamp(220px, 22vw, 320px);
}
.swp-events-hero--full,
.swp-events-hero--overlay {
  position: relative;
  left: 50%;
  width: 100vw;
  max-width: none;
  margin-left: -50vw;
  margin-right: -50vw;
}
.swp-events-hero--full .swp-events-hero__media {
  height: clamp(240px, 24vw, 360px);
}
.swp-events-hero--overlay .swp-events-hero__media {
  height: clamp(250px, 24vw, 340px);
}
.swp-events-hero__shade {
  position: absolute;
  inset: 0;
  background: linear-gradient(to bottom, rgba(15,23,31,.12) 0%, rgba(15,23,31,.18) 35%, rgba(15,23,31,.70) 100%);
}
.swp-events-hero__overlay {
  position: absolute;
  inset: 0;
  z-index: 2;
  display: flex;
  align-items: flex-end;
  justify-content: center;
  padding: clamp(24px, 4vw, 48px) var(--swp-site-gutter, 24px);
}
.swp-events-hero__title {
  width: min(1040px, 100%);
  margin: 0;
  color: var(--swp-color-white);
  font-size: clamp(40px, 4.2vw, 60px);
  line-height: 1.05;
  text-align: center;
  text-shadow: 0 2px 14px rgba(0,0,0,.34);
}
.swp-events-archive--hero-full > .swp-site-container,
.swp-events-archive--hero-overlay > .swp-site-container {
  padding-top: clamp(2rem, 4vw, 3.25rem);
}
.swp-events-description--below-hero {
  max-width: 820px;
  margin: 0 auto 1.75rem;
  text-align: center;
}
@media screen and (max-width: 782px) {
  .swp-events-archive--hero-full,
  .swp-events-archive--hero-overlay { padding-top: 0; }

  .swp-events-hero--article .swp-events-hero__media,
  .swp-events-hero--full .swp-events-hero__media {
    height: clamp(190px, 52vw, 250px);
  }

  .swp-events-hero--overlay .swp-events-hero__media {
    height: clamp(220px, 58vw, 280px);
  }

  .swp-events-hero__overlay { padding: 24px 20px; }
  .swp-events-hero__title {
    font-size: clamp(32px, 9vw, 44px);
    line-height: 1.08;
  }
}


/* 2026.1.183: Sold-out waitlist + persistent city-request CTA. */
.swp-event__button--waitlist {
  cursor: pointer;
}

.swp-event__waitlist-status {
  display: inline-flex;
  align-items: center;
  min-height: var(--swp-event-action-height);
  color: var(--swp-color-text);
  font-size: clamp(.9rem, 1.35vw, 1.05rem);
  font-weight: 700;
  letter-spacing: .04em;
  line-height: 1;
  text-transform: uppercase;
  white-space: nowrap;
}

.swp-event__waitlist-status + .swp-event__button--waitlist {
  margin-left: clamp(.75rem, 1.6vw, 1.25rem);
}

.swp-event-list--layout-cards .swp-event__action--waitlist {
  align-items: center;
  justify-content: space-between;
  gap: .75rem;
}

.swp-event-list--layout-cards .swp-event__action--waitlist .swp-event__button--waitlist {
  width: auto;
  flex: 1 1 auto;
  min-width: 0;
  margin-left: 0;
}

.swp-events-city-request {
  margin-top: clamp(2rem, 5vw, 3.5rem);
  padding-top: clamp(1.5rem, 4vw, 2.5rem);
  border-top: 1px solid var(--swp-color-border, #d9d9d9);
}

.swp-events-city-request .swp-mailing-list {
  max-width: 900px;
  margin-inline: auto;
}

.swp-events-city-request .swp-mailing-list__heading,
.swp-events-city-request .swp-mailing-list__description {
  text-align: center;
}

/* 2026.1.220: VIP ticket actions, Event notices, and grouped Notify Me support. */
.swp-event__notice {
  display: inline-block;
  margin: 0;
  padding: .35rem .55rem;
  background: var(--swp-event-warning-bg);
  border-left: 3px solid var(--swp-event-warning-border);
  color: var(--swp-event-warning-text);
  font-size: clamp(.9rem, 1.35vw, 1.02rem);
  font-weight: 700;
  line-height: 1.35;
}

.swp-event__schedule-item--notice {
  align-items: center;
}

.swp-event__schedule-item--notice .swp-event__notice {
  white-space: normal;
}

.swp-event__ticket-buttons {
  display: flex;
  flex-wrap: wrap;
  justify-content: flex-end;
  align-items: center;
  gap: .65rem;
}

.swp-event__ticket-buttons .swp-event__button {
  min-width: 0;
  color: #fff;
  text-decoration: none;
}

.swp-event__ticket-buttons .swp-event__button--low-tickets {
  color: var(--swp-event-warning-text);
}

.swp-event__button--vip {
  background: var(--swp-color-primary-dark, var(--swp-color-primary));
  color: #fff;
}

.swp-event-list--layout-cards .swp-event__ticket-buttons {
  width: 100%;
  justify-content: stretch;
}

.swp-event-list--layout-cards .swp-event__ticket-buttons .swp-event__button {
  flex: 1 1 140px;
}

@media (max-width: 700px) {
  .swp-event__ticket-buttons {
    width: 100%;
    justify-content: stretch;
  }

  .swp-event__ticket-buttons .swp-event__button {
    flex: 1 1 100%;
  }
}

/* Multiple same-day showtimes inside one Event record. */
.swp-event__action--showtimes {
  align-items: stretch;
}

.swp-event__showtimes {
  display: flex;
  flex-direction: column;
  gap: .55rem;
  width: 100%;
}

.swp-event__showtime {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  gap: .65rem;
}


.swp-event__showtime-actions {
  display: flex;
  align-items: center;
  justify-content: flex-end;
  flex-wrap: wrap;
  gap: .45rem;
}

.swp-event__showtime-actions .swp-event__button,
.swp-event__showtime-actions .swp-event__status {
  width: auto;
  min-width: 8.5rem;
}

.swp-event-list--layout-cards .swp-event__showtime {
  align-items: stretch;
  flex-direction: column;
  gap: .35rem;
}


.swp-event-list--layout-cards .swp-event__showtime-actions {
  justify-content: stretch;
}

.swp-event-list--layout-cards .swp-event__showtime-actions .swp-event__button,
.swp-event-list--layout-cards .swp-event__showtime-actions .swp-event__status {
  flex: 1 1 auto;
}

@media (max-width: 720px) {
  .swp-event__showtime {
    align-items: stretch;
    flex-direction: column;
    gap: .35rem;
  }


  .swp-event__showtime-actions {
    justify-content: stretch;
  }

  .swp-event__showtime-actions .swp-event__button,
  .swp-event__showtime-actions .swp-event__status {
    flex: 1 1 auto;
  }
}


/* SWP bundle: swp-theme-overrides */
/* Tommy Johnagin visual skin: the SWP Base framework owns all layout widths and grids.
   This file intentionally never sets --swp-site-max-width or overrides SWP video grids. */
:root {
  --swp-color-primary: #259cc9;
  --swp-color-primary-dark: #1c397b;
  --swp-color-header: #203b7d;
  --swp-color-footer: #203b7d;
}
body { background: #f5f5f1 url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/white_background.jpg") repeat; color:#1d1d1d; }
.page-wrap, .tommy-main, .tommy-main > .swp-site-container { background:transparent; }
a { color:#208fc0; }
a:hover { color:#16367a; }

/* SWP is responsible for the desktop header layout and the mobile menu mechanics. */
.site-header { background:#203b7d url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/menu_blue_background.jpg") repeat; border:0; }
.site-header .site-title, .site-header .site-title a { color:#fff; text-decoration:none; }
.site-header .site-menu a { color:#fff; text-transform:uppercase; font-weight:800; }
.site-header .site-menu a:hover, .site-header .site-menu a:focus-visible { color:#50bce5; }

/* SWP Tools Home Hero remains the source of truth when enabled. */
.tommy-home .swp-home-header { margin-bottom:0; background:transparent; }
.tommy-home .swp-home-hero--single .swp-home-hero__image { object-fit:contain; }
.tommy-masthead { display:grid;place-items:center;min-height:290px;background:#f4f4f0 url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/header_background_white.png") center bottom/cover no-repeat; }
.tommy-masthead__inner { width:min(90%,850px);margin:20px auto 45px;text-align:center; }
.tommy-masthead img { display:block;width:min(100%,650px);height:auto;margin:auto; }
/* No legacy pseudo-element at the hero/video seam. */
.tommy-home .swp-home-header::after,.tommy-masthead::after { content:none;display:none; }

/* Video band breaks out to viewport width, but its CONTENT uses the framework container. */
.tommy-home-content .tommy-featured-video,
.tommy-home-content .tommy-video-torn {
  width:100vw;max-width:100vw;
  margin-left:calc(50% - 50vw);margin-right:calc(50% - 50vw);
  box-sizing:border-box;
}
.tommy-home-content .tommy-featured-video {
  position:relative;isolation:isolate;
  background:#203b7d url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/menu_blue_background.jpg") repeat;
  color:#fff;
  padding:clamp(14px,2.5vw,36px) var(--swp-site-gutter,24px) clamp(20px,3vw,42px);
  margin-top:0;
}
.tommy-video-wrap,.tommy-video-content {width:100%;min-width:0;margin-inline:auto;}
.tommy-video-wrap {max-width:var(--swp-site-max-width,1280px);text-align:center;}
.tommy-video-content .swp-artist-videos {max-width:var(--swp-site-max-width,1280px);}
/* The banner/link is regular editable content, not theme-generated markup. */
.tommy-video-content > p:first-child {margin-top:0;}
.tommy-video-content > p > a:has(img) {display:block;line-height:0;}
.tommy-video-content > p > a > img {display:block;width:100%;height:auto;}
.tommy-video-content iframe {max-width:100%;}

/* Masked blue texture above and below the video band; white paper shows through. */
.tommy-home-content .tommy-featured-video::before {
  content:"";display:block;position:absolute;left:0;right:0;top:-39px;height:42px;
  background:#203b7d url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/menu_blue_background.jpg") center top repeat;
  -webkit-mask:url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/tommy-tear-top.svg") center/100% 100% no-repeat;
  mask:url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/tommy-tear-top.svg") center/100% 100% no-repeat;
  pointer-events:none;z-index:0;
}
.tommy-video-wrap {position:relative;z-index:1;}
.tommy-home-content .tommy-video-torn {height:42px;margin-top:-1px;position:relative;}
.tommy-home-content .tommy-video-torn::before {
  content:"";display:block;position:absolute;inset:0;
  background:#203b7d url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/menu_blue_background.jpg") center top repeat;
  -webkit-mask:url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/tommy-tear-bottom.svg") center/100% 100% no-repeat;
  mask:url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/tommy-tear-bottom.svg") center/100% 100% no-repeat;
  pointer-events:none;
}

/* Page editor content and embedded players keep their normal SWP widths. */
.tommy-home-content img {max-width:100%;height:auto;}
.tommy-home-content .entry {overflow-wrap:anywhere;}
.tommy-home-content .entry iframe {max-width:100%;}
.tommy-home-content h2 {color:#249bc9;text-transform:uppercase;font-weight:900;font-style:italic;letter-spacing:-.025em;}
.tommy-main {padding-top:0;}
.tommy-home-article .entry > p:first-child {margin-top:0;}
.site-footer {background:#203b7d url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/menu_blue_background.jpg") repeat;color:#fff;}
.site-footer a,.site-footer p,.site-footer span {color:#fff;}
.site-footer a:hover {color:#65c7f0;}

@media(max-width:900px) {
  .site-header .site-menu-toggle,.site-header .site-menu-toggle:hover,
  .site-header .site-menu-toggle:focus,.site-header .site-menu-toggle.is-open {color:#fff;}
  .site-navigation,.site-navigation.is-open,.site-navigation.mobile-menu-open {
    background:#203b7d url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/menu_blue_background.jpg") repeat;
  }
  .site-navigation .site-menu a,.site-navigation .site-menu .sub-menu a,
  .site-navigation .swp-mobile-menu-header a,.site-navigation .swp-mobile-menu-footer a {color:#fff;}
  .site-navigation .swp-mobile-menu-header a {font-size:clamp(16px,4vw,23px);white-space:nowrap;}
  .site-header .site-title,.site-header .site-title a {white-space:nowrap;font-size:clamp(12px,3.3vw,20px);}
  .site-branding {min-width:0;max-width:calc(100% - 65px);}
  .tommy-masthead {min-height:220px;}
  .tommy-home-content .tommy-featured-video::before {top:-35px;height:38px;}
  .tommy-home-content .tommy-video-torn {height:38px;}
}
@media(max-width:600px) {
  .tommy-masthead {min-height:190px;}
  .tommy-masthead__inner {margin:12px auto 30px;}
  .tommy-home-content .tommy-featured-video::before {top:-27px;height:30px;}
  .tommy-home-content .tommy-video-torn {height:30px;}
}

/* 2026-10-13: Keep the original paper texture visible through SVG tear masks.
   The SVGs only determine the silhouette of the blue section; the paper is
   supplied by the surfaces behind the transparent portions. */
.tommy-home .tommy-main {
  background-color: #f5f5f1;
  background-image: url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/white_background.jpg");
  background-repeat: repeat;
  background-size: auto;
}
.tommy-home .tommy-home-content,
.tommy-home .tommy-home-article,
.tommy-home .tommy-home-article > .entry {
  background: transparent;
}
.tommy-home .swp-home-header {
  background-color: #f5f5f1;
  background-image: url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/white_background.jpg");
  background-repeat: repeat;
  background-size: auto;
}
.tommy-home-content .tommy-video-torn {
  /* The unmasked section must be textured paper, never a flat white strip. */
  background-color: #f5f5f1;
  background-image: url("https://johnagin.com/wp-content/themes/TommyJ-SWP-2026/images/white_background.jpg");
  background-repeat: repeat;
  background-size: auto;
}

.site-footer{background:#1c397b;}.swp-footer-container--has-intro{padding-top:10px;}.swp-footer-intro{padding-top:10px;padding-bottom:10px;}.swp-footer-intro::before{background:#1c397b;}.swp-footer-feature-link{font-size:18px;}.swp-footer-additional-notice{font-size:14px;}
