/* Root / Global */
:root {
  --font-body: 'Source Sans 3', system-ui, -apple-system, BlinkMacSystemFont, "Segoe UI", Roboto, sans-serif;
  --font-heading: 'Playfair Display', Georgia, serif;
  --font-display: 'Fraunces', 'Playfair Display', Georgia, serif;
  --color-bg-main: #689776;
  --color-bg-alt: #CD5533;
}

/* Body text - highly readable */
body,
p,
article,
.entry-content {
  font-family: var(--font-body);
  font-weight: 400;
  line-height: 1.7;
  font-size: 1.05rem; /* Adjust as needed */
}

/* Headings — Playfair Display ExtraBold */
h1, h2, h3, h4, h5, h6,
.site-title, .entry-title {
  font-family: var(--font-heading);
  font-weight: 800;
  line-height: 1.2;
  letter-spacing: -0.01em;
}

/* Menus, nav, widgets, sidebars */
nav, .menu, .widget, .wp-block-navigation,
.comment-meta, .meta, .caption {
  font-family: var(--font-body);
  font-weight: 500; /* Medium for better presence */
}

/* Optional: Tighter display for big headlines */
h1 {
  font-weight: 800;
  letter-spacing: -0.02em;
}

/* Display alternate (Fraunces) when useful */
.display-title,
.lede-item-title {
  font-family: var(--font-heading);
  font-optical-sizing: auto;
}

/*! normalize.css v4.1.1 | MIT License | github.com/necolas/normalize.css */
/**
 * 1. Change the default font family in all browsers (opinionated).
 * 2. Prevent adjustments of font size after orientation changes in IE and iOS.
 */
html {
  font-family: sans-serif;
  /* 1 */
  -ms-text-size-adjust: 100%;
  /* 2 */
  -webkit-text-size-adjust: 100%;
  /* 2 */ }

/**
 * Remove the margin in all browsers (opinionated).
 */
body {
  margin: 0;
  }

/* HTML5 display definitions
   ========================================================================== */
/**
 * Add the correct display in IE 9-.
 * 1. Add the correct display in Edge, IE, and Firefox.
 * 2. Add the correct display in IE.
 */
article,
aside,
details,
figcaption,
figure,
footer,
header,
main,
menu,
nav,
section,
summary {
  /* 1 */
  display: block;
  }

/**
 * Add the correct display in IE 9-.
 */
audio,
canvas,
progress,
video {
  display: inline-block;
  }

/**
 * Add the correct display in iOS 4-7.
 */
audio:not([controls]) {
  display: none;
  height: 0;
  }

/**
 * Add the correct vertical alignment in Chrome, Firefox, and Opera.
 */
progress {
  vertical-align: baseline;
  }

/**
 * Add the correct display in IE 10-.
 * 1. Add the correct display in IE.
 */
template,
[hidden] {
  display: none;
  }

/* Links
   ========================================================================== */
/**
 * 1. Remove the gray background on active links in IE 10.
 * 2. Remove gaps in links underline in iOS 8+ and Safari 8+.
 */
a {
  background-color: transparent;
  /* 1 */
  -webkit-text-decoration-skip: objects;
  /* 2 */ }

/**
 * Remove the outline on focused links when they are also active or hovered
 * in all browsers (opinionated).
 */
a:active,
a:hover {
  outline-width: 0;
  }

/* Text-level semantics
   ========================================================================== */
/**
 * 1. Remove the bottom border in Firefox 39-.
 * 2. Add the correct text decoration in Chrome, Edge, IE, Opera, and Safari.
 */
abbr[title] {
  border-bottom: none;
  /* 1 */
  text-decoration: underline;
  /* 2 */
  text-decoration: underline dotted;
  /* 2 */ }

/**
 * Prevent the duplicate application of `bolder` by the next rule in Safari 6.
 */
b,
strong {
  font-weight: inherit;
  }

/**
 * Add the correct font weight in Chrome, Edge, and Safari.
 */
b,
strong {
  font-weight: bolder;
  }

/**
 * Add the correct font style in Android 4.3-.
 */
dfn {
  font-style: italic;
  }

/**
 * Correct the font size and margin on `h1` elements within `section` and
 * `article` contexts in Chrome, Firefox, and Safari.
 */
h1 {
  font-size: 2em;
  margin: 0.67em 0;
  }

/**
 * Add the correct background and color in IE 9-.
 */
mark {
  background-color: #ff0;
  color: #000;
  }

/**
 * Add the correct font size in all browsers.
 */
small {
  font-size: 80%;
  }

/**
 * Prevent `sub` and `sup` elements from affecting the line height in
 * all browsers.
 */
sub,
sup {
  font-size: 75%;
  line-height: 0;
  position: relative;
  vertical-align: baseline;
  }

sub {
  bottom: -0.25em;
  }

sup {
  top: -0.5em;
  }

/* Embedded content
   ========================================================================== */
/**
 * Remove the border on images inside links in IE 10-.
 */
img {
  border-style: none;
  }

/**
 * Hide the overflow in IE.
 */
svg:not(:root) {
  overflow: hidden;
  }

/* Grouping content
   ========================================================================== */
/**
 * 1. Correct the inheritance and scaling of font size in all browsers.
 * 2. Correct the odd `em` font sizing in all browsers.
 */
code,
kbd,
pre,
samp {
  font-family: monospace, monospace;
  /* 1 */
  font-size: 1em;
  /* 2 */ }

/**
 * Add the correct margin in IE 8.
 */
figure {
  margin: 1em 40px;
  }

/**
 * 1. Add the correct box sizing in Firefox.
 * 2. Show the overflow in Edge and IE.
 */
hr {
  box-sizing: content-box;
  /* 1 */
  height: 0;
  /* 1 */
  overflow: visible;
  /* 2 */ }

/* Forms
   ========================================================================== */
/**
 * 1. Change font properties to `inherit` in all browsers (opinionated).
 * 2. Remove the margin in Firefox and Safari.
 */
button,
input,
select,
textarea {
  font: inherit;
  /* 1 */
  margin: 0;
  /* 2 */ }

/**
 * Restore the font weight unset by the previous rule.
 */
optgroup {
  font-weight: 600;
  }

/**
 * Show the overflow in IE.
 * 1. Show the overflow in Edge.
 */
button,
input {
  /* 1 */
  overflow: visible;
  }

/**
 * Remove the inheritance of text transform in Edge, Firefox, and IE.
 * 1. Remove the inheritance of text transform in Firefox.
 */
button,
select {
  /* 1 */
  text-transform: none;
  }

/**
 * 1. Prevent a WebKit bug where (2) destroys native `audio` and `video`
 *    controls in Android 4.
 * 2. Correct the inability to style clickable types in iOS and Safari.
 */
button,
html [type="button"],
[type="reset"],
[type="submit"] {
  -webkit-appearance: button;
  /* 2 */ }

/**
 * Remove the inner border and padding in Firefox.
 */
button::-moz-focus-inner,
[type="button"]::-moz-focus-inner,
[type="reset"]::-moz-focus-inner,
[type="submit"]::-moz-focus-inner {
  border-style: none;
  padding: 0;
  }

/**
 * Restore the focus styles unset by the previous rule.
 */
button:-moz-focusring,
[type="button"]:-moz-focusring,
[type="reset"]:-moz-focusring,
[type="submit"]:-moz-focusring {
  outline: 1px dotted ButtonText;
  }

/**
 * Change the border, margin, and padding in all browsers (opinionated).
 */
fieldset {
  border: 1px solid #c0c0c0;
  margin: 0 2px;
  padding: 0.35em 0.625em 0.75em;
  }

/**
 * 1. Correct the text wrapping in Edge and IE.
 * 2. Correct the color inheritance from `fieldset` elements in IE.
 * 3. Remove the padding so developers are not caught out when they zero out
 *    `fieldset` elements in all browsers.
 */
legend {
  box-sizing: border-box;
  /* 1 */
  color: inherit;
  /* 2 */
  display: table;
  /* 1 */
  max-width: 100%;
  /* 1 */
  padding: 0;
  /* 3 */
  white-space: normal;
  /* 1 */ }

/**
 * Remove the default vertical scrollbar in IE.
 */
textarea {
  overflow: auto;
  }

/**
 * 1. Add the correct box sizing in IE 10-.
 * 2. Remove the padding in IE 10-.
 */
[type="checkbox"],
[type="radio"] {
  box-sizing: border-box;
  /* 1 */
  padding: 0;
  /* 2 */ }

/**
 * Correct the cursor style of increment and decrement buttons in Chrome.
 */
[type="number"]::-webkit-inner-spin-button,
[type="number"]::-webkit-outer-spin-button {
  height: auto;
  }

/**
 * 1. Correct the odd appearance in Chrome and Safari.
 * 2. Correct the outline style in Safari.
 */
[type="search"] {
  -webkit-appearance: textfield;
  /* 1 */
  outline-offset: -2px;
  /* 2 */ }

/**
 * Correct the text style of placeholders in Chrome, Edge, and Safari.
 */
::-webkit-input-placeholder {
  color: inherit;
  opacity: 0.54;
  }

/**
 * 1. Correct the inability to style clickable types in iOS and Safari.
 * 2. Change font properties to `inherit` in Safari.
 */
::-webkit-file-upload-button {
  -webkit-appearance: button;
  /* 1 */
  font: inherit;
  /* 2 */ }

html {
  box-sizing: border-box;
  }

*, *::after, *::before {
  box-sizing: inherit;
  }


.category-block {
  margin: 60px 0;
  padding: 18px 0;
  border-bottom: 3px solid #efefef;
}

.category-block-heading {
  font-family: var(--font-heading), Sans-Serif;
  font-size: 27px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 18px 0;
  padding: 0 0 18px 0;
  border-bottom: 1px solid #efefef;
}

.category-articles {
  display: flex;
  flex-direction: row;
  flex-wrap: wrap;
  margin: 0;
  padding: 0;
}

.cat-col-1 {
  margin: 0 0 18px 0;
  padding: 0 0 18px 0;
  width: 100%;
}

.cat-col-2,
.cat-col-3 {
  display: block;
  margin: 0 0 18px 0;
  padding: 0 0 18px 0;
  width: 100%;
  flex: 0 0 100%;
}

.cat-col-2 .temp-ad,
.cat-col-2 .temp-rectangle {
  margin: 0 auto;
}

@media screen and (min-width: 640px) {
  /* Keep category columns stacked until desktop (1024) */
  .cat-col-2 .ad-slot,
  .cat-col-2 .temp-ad {
    margin-bottom: 0;
    padding-bottom: 0;
    border-bottom: none;
  }
}

@media screen and (min-width: 1024px) {
  .category-block-heading {
    font-size: 36px;
  }

  .category-articles {
    flex-wrap: nowrap;
  }

  .cat-col-1 {
    border-bottom: none;
    margin: 0;
    padding: 0;
    width: auto;
    /* 60% of space after the fixed 340px column */
    flex: 6 1 0%;
    min-width: 0;
  }

  .cat-col-2 {
    /* Ad (odd) or two-story stack (even) */
    flex: 0 0 340px;
    width: 340px;
    max-width: 340px;
  }

  .cat-col-3 {
    /* 40% of space after the fixed 340px column */
    flex: 4 1 0%;
    min-width: 0;
    margin: 0 18px;
    padding: 0 18px;
    border-left: 1px solid #efefef;
    border-right: 1px solid #efefef;
  }

  /* Odd: lede | list | ad  (HTML is lede, ad, list) */
  .category-block.odd .cat-col-2 {
    order: 3;
  }

  .category-block.odd .cat-col-3 {
    order: 2;
  }

  /* Even: two stories | list | lede */
  .category-block.even .cat-col-1 {
    order: 3;
  }

  .category-block.even .cat-col-2 {
    order: 1;
  }

  .category-block.even .cat-col-3 {
    order: 2;
  }
}

@media screen and (min-width: 1280px) {
  /* Widths already set at 1024: 340px fixed + 60/40 split of the rest */
  .cat-col-1,
  .cat-col-3 {
    min-width: 0;
  }
}



.category-lede {
  
}

.category-lede-thumbnail {
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.category-lede-thumbnail img,
.category-lede-thumbnail-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}
  
.category-lede-title {
  font-family: var(--font-heading);
  font-size: 24px; 
  word-spacing: 2px;
  margin: .5em 0;
}


@media screen and (min-width: 640px) {

  .category-lede {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  }
  
  .category-lede-thumbnail {
  margin: 0;
  flex: 1;
  aspect-ratio: 3 / 2;
  overflow: hidden;
  }

  .category-lede-thumbnail img,
  .category-lede-thumbnail-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
  }
  
  .category-lede-header {
  margin: 0 0 0 18px;
  padding: 0 0 0 18px;
  flex: 1;
  border-left: 1px solid white;
  }
  
  .category-lede-title {
  font-size: 30px;
  margin: 0;
  }

  
}

@media screen and (min-width: 1024px) {

  .category-lede {
  display: block;
  }
  
  .category-lede-header {
  margin: 0;
  padding: 0;
  border-left: none;
  }

  .category-lede-title {
  margin: .5em 0;
  }

}
  
 
.category-entry {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #efefef;
}

.category-entry:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  }
  
.category-entry-thumbnail {
  flex: 0 0 120px;
  order: 1;
  margin: 0 0 0 18px;
  padding: 0; 
  }
  
.category-entry-thumbnail img {
  object-fit: cover;
  width: 120px;
  height: 120px;  
  }  

.category-entry-header {
  text-align: left;
  flex: 2 0 0;
  padding: 0; 
  }
  
.category-entry-title {
  font-family: var(--font-heading);
  font-size: 20px;
  word-spacing: 2px;
  margin: 0 0 .618em 0;
  }
  
@media screen and (min-width: 480px) {
   
  .category-entry-thumbnail {
	flex: 1 0 0; }
	
	
  .category-entry-thumbnail img {
	object-fit: contain;
	width: 100%;
	height: auto;
  }
  
  }  
  
@media screen and (min-width: 640px) {
  
 .category-entry-thumbnail {
   flex: 0 0 120px;
 }
 
 .category-entry-thumbnail img {
   object-fit: cover;
   width: 120px;
   height: 120px;  
 }  
  
}

@media screen and (min-width: 960px) {
  
  .category-entry-thumbnail img {
  object-fit: contain;
  width: 100%;
  height: auto;
  }
}

  
  
@media screen and (min-width: 1080px) {
  
  .minimal-nav {
  margin: 60px 0 0 0 !important; 
  } 
}  

#wpadminbar {
  position: fixed;
}
  
body.admin-bar .primary-nav {
  top: 46px;
  }
 
@media all and (min-width:782px) {
  
  body.admin-bar .primary-nav {
  top: 32px;
  }
}

@media all and (min-width: 1116px) {
  
  body:not(.minimal-nav).admin-bar .primary-nav {
	top: auto;
  }
}

body {
  margin: 60px 0 0 0;
  width: 100%;
  overflow-x: clip;
  }

@media screen and (min-width: 1116px) {
  
  body {
  margin: 0; 
  }
}  

h1, h2, h3, h4, h5, h6 {
  font-weight: normal;
  line-height: 1.236;
  }

hr {
  margin: 1em 0;
  padding: 0;
  height: 0;
  border: none;
  border-top: 1px solid #efefef;
  }

figure {
  margin: 0;
  }
  
.mobile-only {
  display: block;
}

.desktop-only {
  display: none;
}

.alignnone,
.alignright, 
.aligncenter,
.alignleft, 
.wp-caption.alignnone,
.wp-caption.alignright,
.wp-caption.aligncenter,
.wp-caption.alignleft {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
  margin: 24px auto;
}

@media screen and (min-width: 768px) {
  
  .mobile-only {
	display: none;
  }
  
  .desktop-only {
	display: block;
  }

  .alignleft,
  .alignright,
  .wp-caption.alignleft,
  .wp-caption.alignright {
  display: inline-block;
  max-width: 50%;
  }

  .alignright,
  .wp-caption.alignright {
  float: right;
  margin: 24px 0 24px 24px;
  }

  .aligncenter,
  .wp-caption.aligncenter {
  margin-left: auto;
  margin-right: auto;
  }

  .alignleft,
  .wp-caption.alignleft {
  float: left;
  margin: 24px 24px 24px 0;
  }    
}

.highlight {
  color: #b23c25; 
  }

.page-nav {
  display: flex;
  justify-content: center;
  margin: 18px 0 36px 0;
}

.page-next,
.page-previous {
  font-family: var(--font-body);
  font-size: 16px;
  font-weight: 600;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0 1em;
  padding: 6px 9px;
  border: 1px solid var(--color-bg-main, #689776);
  border-radius: 4px;
}

.page-next a,
.page-previous a {
  color: var(--color-bg-main, #689776);
  text-decoration: none;
}

.page-next a:hover,
.page-previous a:hover {
  color: #111111;
}

/* ====================== HEADER & NAVIGATION ====================== */
/* Two-row header: TM-style masthead (logo left / eyebrow right) + 5280-style primary bar */

.site-header {
	background: #fff;
	position: relative;
	z-index: 1000;
}

.site-header .container,
.masthead-inner.container,
.main-nav.container {
	max-width: 1440px;
	margin-left: auto;
	margin-right: auto;
	padding-left: 1.25rem;
	padding-right: 1.25rem;
}

/* --- Masthead (logo left, eyebrow right) --- */
.site-masthead {
	background: #fff;
	border-bottom: 1px solid #e8e8e8;
}

.masthead-inner {
	display: flex;
	align-items: center;
	justify-content: space-between;
	gap: 1.5rem;
	padding-top: 1rem;
	padding-bottom: 1rem;
}

.site-branding {
	display: flex;
	flex-direction: column;
	align-items: flex-start;
	gap: 0.25rem;
	min-width: 0;
}

.site-branding .custom-logo-link,
.site-branding a {
	display: inline-block;
	line-height: 0;
}

.site-branding img,
.site-branding .custom-logo {
	max-height: 72px;
	width: auto;
	height: auto;
}

.site-branding .site-title {
	font-family: var(--font-heading);
	font-weight: 800;
	font-size: 1.75rem;
	color: #111;
	text-decoration: none;
	line-height: 1.1;
}

.site-branding .tag-line {
	font-family: var(--font-body);
	font-size: 0.72rem;
	font-weight: 700;
	color: #333;
	letter-spacing: 0.12em;
	text-transform: uppercase;
	line-height: 1.3;
	margin-top: 0.35rem;
}

.masthead-eyebrow {
	display: flex;
	align-items: center;
	justify-content: flex-end;
	gap: 0.75rem;
	flex-shrink: 0;
	background: transparent;
}

.secondary-nav,
.secondary-navigation,
#menu-secondary {
	background: transparent !important;
}

.secondary-nav .menu,
#menu-secondary {
	display: flex;
	flex-wrap: wrap;
	justify-content: flex-end;
	align-items: center;
	gap: 0.15rem 0.35rem;
	list-style: none;
	margin: 0;
	padding: 0;
	font-family: var(--font-body);
	font-weight: 600;
	text-transform: uppercase;
	letter-spacing: 0.04em;
	font-size: 0.8rem;
}

.secondary-nav .menu .menu-item a {
	display: inline-block;
	padding: 0.35rem 0.55rem;
	color: #222;
	text-decoration: none;
	white-space: nowrap;
}

.secondary-nav .menu .menu-item a:hover {
	color: var(--color-bg-main, #689776);
	text-decoration: underline;
}

.search-icon {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.4rem;
	color: #222;
	display: inline-flex;
	align-items: center;
	justify-content: center;
}

.search-icon:hover {
	color: var(--color-bg-main, #689776);
}

/* Desktop search lives in sticky primary bar (5280), not the scrolling masthead */
.main-nav .search-icon--desktop {
	display: inline-flex;
	flex: 0 0 auto;
	margin-left: 0.35rem;
	align-self: center;
	height: 44px;
	padding: 0.35rem 0.25rem;
}

.eyebrow-search-form {
	display: none;
}

/* --- Sticky primary bar --- */
.site-header-block {
	position: relative;
	z-index: 999;
	background: #fff;
	border-top: none;
	border-bottom: 3px solid var(--color-bg-main, #689776);
}

/* Pinned primary bar (JS adds .is-stuck + inserts a height spacer) */
.site-header-block.is-stuck {
	position: fixed;
	top: var(--wp-admin--admin-bar--height, 0px);
	left: 0;
	right: 0;
	width: 100%;
	z-index: 1000;
	box-shadow: 0 1px 0 rgba(0, 0, 0, 0.06);
}

.site-header-sticky-spacer {
	display: none;
	width: 100%;
	pointer-events: none;
}

.site-header-sticky-spacer.is-active {
	display: block;
}

.main-nav {
	display: flex;
	align-items: center;
	gap: 0.75rem;
	min-height: 52px;
	position: relative;
	border: none;
}

.menu-primary-container {
	flex: 1;
	min-width: 0;
}

.main-menu {
	display: flex;
	flex-direction: row;
	justify-content: center;
	align-items: center;
	list-style: none;
	margin: 0;
	padding: 0;
	width: 100%;
	font-family: var(--font-body);
	gap: 0.15rem;
	border-top: none;
	border-bottom: none;
}

.main-menu > li {
	position: relative;
	text-transform: uppercase;
	flex: 0 1 auto;
	margin: 0;
}

.main-menu > li > a,
.main-menu > li > span {
	display: block;
	padding: 0.85rem 0.65rem;
	color: #111;
	text-decoration: none;
	font-weight: 700;
	white-space: nowrap;
	font-size: 0.95rem;
	letter-spacing: 0.02em;
	cursor: pointer;
}

.main-menu > li > a:hover,
.main-menu > li > span:hover,
.main-menu > li.current-menu-item > a,
.main-menu > li.current-menu-ancestor > a,
.main-menu > li.current-menu-ancestor > span {
	color: var(--color-bg-main, #689776);
}

/* Down caret on items with children */
.main-menu > .menu-item-has-children > a::after,
.main-menu > .menu-item-has-children > span::after {
	content: "";
	display: inline-block;
	width: 0.45em;
	height: 0.45em;
	margin-left: 0.4em;
	border-right: 2px solid currentColor;
	border-bottom: 2px solid currentColor;
	transform: rotate(45deg) translateY(-0.15em);
	vertical-align: middle;
	opacity: 0.85;
	transition: transform 0.2s ease;
}
.main-menu > .menu-item-has-children.submenu-open > a::after,
.main-menu > .menu-item-has-children.submenu-open > span::after {
	transform: rotate(225deg) translateY(-0.05em);
}

/* Simple dropdown (no mega) */
.main-menu .sub-menu {
	position: absolute;
	top: 100%;
	left: 0;
	min-width: 220px;
	background: #fff;
	border: 1px solid #e8e8e8;
	box-shadow: 0 12px 28px rgba(0, 0, 0, 0.12);
	list-style: none;
	margin: 0;
	padding: 0.4rem 0;
	opacity: 0;
	visibility: hidden;
	transform: translateY(8px);
	transition: opacity 0.2s ease, transform 0.2s ease, visibility 0.2s;
	z-index: 1001;
}

.main-menu > li:hover > .sub-menu,
.main-menu > li:focus-within > .sub-menu {
	opacity: 1;
	visibility: visible;
	transform: translateY(0);
}

.main-menu .sub-menu a {
	display: block;
	padding: 0.55rem 1rem;
	color: #222;
	text-decoration: none;
	font-size: 0.9rem;
	font-weight: 600;
	text-transform: none;
	letter-spacing: 0;
	white-space: nowrap;
}

.main-menu .sub-menu a:hover {
	color: var(--color-bg-main, #689776);
	background: #f6f8f6;
}

/* Sticky compact logo in primary (5280) */
.main-menu .menu-site-logo {
	opacity: 0;
	visibility: hidden;
	width: 0;
	max-width: 0;
	overflow: hidden;
	flex: 0 0 auto;
	flex-shrink: 0;
	pointer-events: none;
	transition: opacity 0.3s ease, max-width 0.3s ease;
	list-style: none;
}

.site-header-block.is-stuck .menu-site-logo {
	opacity: 1;
	visibility: visible;
	width: auto;
	max-width: 130px; /* wordmark ~112px at 28px tall; leave headroom */
	overflow: visible;
	pointer-events: auto;
	margin-right: 0.5rem;
}

.main-menu .menu-site-logo a {
	display: flex;
	align-items: center;
	padding: 0.2rem 0.25rem;
	line-height: 0;
}

.main-menu .menu-site-logo img {
	/* 458x114 asset → height drives width; no max-width crop */
	height: 26px;
	width: auto;
	max-width: none;
	display: block;
	object-fit: contain;
}

/* Mobile chrome in primary bar — hidden on desktop */
.mobile-only {
	display: none;
}

.menu-toggle {
	background: none;
	border: none;
	cursor: pointer;
	padding: 0.35rem;
	display: none;
	align-items: center;
	gap: 0.4rem;
	font-family: var(--font-body);
	font-weight: 700;
	text-transform: uppercase;
	font-size: 0.75rem;
	color: #222;
}

.hamburger {
	display: block;
	width: 22px;
	height: 2px;
	background: #222;
	position: relative;
}

.hamburger::before,
.hamburger::after {
	content: '';
	position: absolute;
	left: 0;
	width: 22px;
	height: 2px;
	background: #222;
}

.hamburger::before { top: -7px; }
.hamburger::after  { bottom: -7px; }

.menu-toggle.active .hamburger { background: transparent; }
.menu-toggle.active .hamburger::before { transform: rotate(45deg); top: 0; }
.menu-toggle.active .hamburger::after { transform: rotate(-45deg); bottom: 0; }

.mobile-nav-subscribe {
	display: none !important;
}

.mobile-secondary-nav {
	display: none;
}

.mobile-search {
	display: none;
}

/* Desktop search modal */
.desktop-search-modal[hidden] {
	display: none !important;
}

.desktop-search-modal:not([hidden]) {
	display: block;
	position: fixed;
	inset: 0;
	z-index: 10050;
}

.desktop-search-modal__backdrop {
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.55);
}

.desktop-search-modal__dialog {
	position: relative;
	z-index: 1;
	max-width: 560px;
	margin: 12vh auto 0;
	background: #fff;
	border-radius: 10px;
	padding: 1.75rem 1.5rem 1.5rem;
	box-shadow: 0 20px 50px rgba(0, 0, 0, 0.25);
}

.desktop-search-modal__close {
	position: absolute;
	top: 0.5rem;
	right: 0.75rem;
	border: none;
	background: none;
	font-size: 1.75rem;
	line-height: 1;
	cursor: pointer;
	color: #444;
}

.desktop-search-modal__title {
	font-family: var(--font-heading);
	font-size: 1.35rem;
	margin: 0 0 1rem;
}

.desktop-search-modal__form .header-search-form {
	display: flex;
	gap: 0.5rem;
}

.desktop-search-modal__form input[type="search"] {
	flex: 1;
	padding: 0.75rem 1rem;
	border: 1px solid #ccc;
	border-radius: 6px;
	font-size: 1rem;
}

/* Wide desktop: spread primary items */
@media (min-width: 1440px) {
	.main-menu {
		justify-content: space-between;
	}
}

/* ====================== MOBILE / TABLET NAV ====================== */
@media (max-width: 1023px) {
	/* Masthead (logo/eyebrow) is desktop-only; mobile uses the sticky bar */
	.site-masthead {
		display: none;
	}

	.site-header-block {
		border-top: none;
		border-bottom: 3px solid var(--color-bg-main, #689776);
	}

	.main-nav {
		min-height: 56px;
		justify-content: space-between;
		align-items: center;
		border: none;
		gap: 0;
		position: relative;
	}

	.mobile-only,
	.menu-toggle {
		display: inline-flex;
	}

	.search-icon--desktop {
		display: none !important;
	}

	/* Equal-width side slots (icon-only) so the logo stays optically centered */
	.menu-toggle,
	.search-icon--mobile {
		flex: 0 0 2.75rem;
		width: 2.75rem;
		max-width: 2.75rem;
		box-sizing: border-box;
	}

	.menu-toggle-label {
		display: none !important;
	}

	.search-icon--mobile {
		display: inline-flex;
		align-items: center;
		justify-content: flex-end;
		height: 44px;
		padding-right: 0.15rem;
		color: #111;
		z-index: 10050;
	}

	.mobile-logo {
		flex: 1 1 auto;
		display: flex;
		justify-content: center;
		align-items: center;
		min-width: 0;
		pointer-events: none;
	}

	.mobile-logo a,
	.mobile-logo .custom-logo-link {
		pointer-events: auto;
	}

	.mobile-logo img,
	.mobile-logo .custom-logo {
		max-height: 36px;
		width: auto;
	}

	.mobile-nav-subscribe {
		display: none !important;
	}

	.menu-toggle {
		align-items: center;
		justify-content: flex-start;
		gap: 0.4rem;
		color: #111;
		z-index: 10055;
		position: relative;
		background: transparent;
		padding-left: 0.15rem;
	}

	.menu-toggle .hamburger,
	.menu-toggle .hamburger::before,
	.menu-toggle .hamburger::after {
		background: #111;
	}

	.menu-toggle-label {
		color: #111;
	}

	/* White slide-out drawer (JS parks this on body while open so sticky header does not trap scroll) */
	.menu-primary-container {
		display: none;
	}

	.menu-primary-container.is-drawer.is-open,
	body.nav-open .menu-primary-container.is-drawer {
		display: block;
		position: fixed;
		top: 0;
		left: 0;
		width: min(88vw, 360px);
		height: 100%;
		max-height: 100vh;
		max-height: 100dvh;
		background: #ffffff !important;
		color: #111;
		box-shadow: 8px 0 30px rgba(0, 0, 0, 0.18);
		padding: 1rem 1.25rem 2.5rem;
		overflow-x: hidden;
		overflow-y: scroll;
		overscroll-behavior: contain;
		touch-action: pan-y;
		z-index: 10040;
		-webkit-overflow-scrolling: touch;
	}

	/* In-flow close row — always visible at top of drawer (no absolute / mobile-only fights). */
	.drawer-toolbar {
		display: flex !important;
		justify-content: flex-end;
		align-items: center;
		margin: 0 0 1rem;
		min-height: 2.5rem;
	}

	.drawer-close {
		display: inline-flex !important;
		align-items: center;
		gap: 0.35rem;
		background: #f5f5f5;
		border: 1px solid #ccc;
		border-radius: 999px;
		padding: 0.4rem 0.85rem 0.4rem 0.6rem;
		color: #111 !important;
		font-size: 0.9rem;
		font-weight: 700;
		letter-spacing: 0.02em;
		text-transform: uppercase;
		cursor: pointer;
		box-shadow: 0 1px 4px rgba(0, 0, 0, 0.12);
		line-height: 1;
	}

	.drawer-close__icon {
		font-size: 1.5rem;
		line-height: 1;
		font-weight: 400;
	}

	.drawer-close__label {
		font-family: var(--font-sans, "Source Sans 3", sans-serif);
	}

	.main-nav.menu-opened .mobile-logo,
	.main-nav.menu-opened .search-icon--mobile {
		visibility: hidden;
	}

	.main-menu {
		flex-direction: column;
		align-items: stretch;
		justify-content: flex-start;
		gap: 0;
	}

	.main-menu > li > a,
	.main-menu > li > span {
		padding: 0.95rem 0;
		border-bottom: 1px solid #eee;
		font-size: 1rem;
		color: #111;
	}

	.main-menu .sub-menu {
		position: static;
		opacity: 1;
		visibility: visible;
		transform: none;
		box-shadow: none;
		border: none;
		display: none;
		padding: 0 0 0.5rem 0.75rem;
		min-width: 0;
		background: #fff;
	}

	.main-menu .sub-menu a {
		color: #333;
	}

	.main-menu > li.submenu-open > .sub-menu {
		display: block;
	}

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

	.mobile-search {
		display: block;
		margin-bottom: 1.25rem;
	}

	.mobile-search .header-search-form input[type="search"] {
		width: 100%;
		padding: 0.7rem 0.85rem;
		border: 1px solid #ccc;
		border-radius: 6px;
		font-size: 1rem;
		background: #fff;
		color: #111;
	}

	.mobile-secondary-nav {
		display: block;
		margin-top: 1.5rem;
		padding-top: 1rem;
		border-top: 1px solid #eee;
		background: transparent;
	}

	.mobile-secondary-menu {
		list-style: none;
		margin: 0;
		padding: 0;
	}

	.mobile-secondary-menu a {
		display: block;
		padding: 0.7rem 0;
		color: #333;
		text-decoration: none;
		font-weight: 600;
		font-size: 0.9rem;
		text-transform: uppercase;
		letter-spacing: 0.03em;
	}

	html.nav-open,
	body.nav-open {
		overflow: hidden;
		height: 100%;
	}

	body.nav-open {
		/* Keep layout width stable when locking page scroll */
		position: relative;
		width: 100%;
	}
}

@media (min-width: 1024px) {
	.search-icon--mobile {
		display: none !important;
	}
}

.nav-backdrop {
	display: none;
	position: fixed;
	inset: 0;
	background: rgba(17, 17, 17, 0.28);
	z-index: 10030;
	border: 0;
	padding: 0;
	margin: 0;
	cursor: pointer;
}

.nav-backdrop.is-visible {
	display: block;
}

@media (min-width: 1024px) {
	.drawer-toolbar,
	.drawer-close {
		display: none !important;
	}
}

.temp-ad {
  display: flex;
  justify-content: center;
  align-items: center;
  border: none;
  background-color: var(--color-bg-main, #689776);
  color: #fff;
  font-weight: 800;
}

.temp-leaderboard-headfoot {
  margin: 18px auto;
  width: 300px;
  height: 50px;
}

.temp-leaderboard-internal {
  margin: 18px auto;
  width: 300px;
  height: 250px;
}

.temp-rectangle {
  width: 300px;
  height: 250px;
}

@media (min-width: 992px) {

  .temp-rectangle {
    width: 300px;
    height: 600px;
  }
  
  .temp-leaderboard-internal,
  .temp-leaderboard-headfoot {
    width: 970px;
    height: 90px;
  }

}
  
.cta-block {
  margin: 36px auto 0 auto;
  padding-top: 18px;
  background-color: #efefef;
  color: #000000;
  }

.cta-content {
  max-width: 1080px;
  margin: 0 auto;
  padding: 18px 18px 0 18px;
}  

.cta-content-1 {
  text-align: center;
  margin-bottom: 18px;
}  
.cta-content-2 {
  text-align: center;
  margin: 18px 0;
}  
.cta-content-3 {
  text-align: center;
  margin-top: 18px;
} 

.cta-image {
  display: block;
  max-width: 280px;
  margin: 0 auto;
}

.cta-block-heading {
  font-family: var(--font-body);
  font-size: 32px;
  margin: 0 0 10px;
  }
  
.cta-block-description {
  font-family: var(--font-body);
  font-size: 22px;
  display: block;
  margin: 0;
  }  

.cta-block-button {
  font-family: var(--font-body);
  font-size: 18px;
  font-weight: 600;
  text-transform: uppercase;
  display: inline-block;
  min-width: 180px;
  padding: 12px 18px;
  margin: 0;
  background-color: #b23c25;
  color: #ffffff;
  }
  
@media screen and (min-width: 768px) { 
 
 .cta-content {
   display: flex;
   flex-direction: row;
   align-items: center;
   padding: 0;
 } 
 
 .cta-content-1 {
   flex: 50%;
   text-align: left;
   padding: 0 18px;
 }  
 .cta-content-2 {
   flex: 25%;
 }  
 .cta-content-3 {
   flex: 25%;
 }
 
 .cta-image {
   position: relative;
   bottom: 0;
   max-width: 320px;
 }
  
}

@media screen and (min-width: 1080px) { 
  .cta-content-1 {
	 padding: 0;
  }  
}

/* Site footer — Gateway Outdoor Expo inspired */
.footer-ad {
  margin: 1.5rem auto;
}

.site-footer {
  font-family: var(--font-body);
  background-color: #689776;
  color: #ffffff;
  padding: 0;
}

.site-footer a {
  color: #ffffff;
  text-decoration: none;
}

.site-footer a:hover {
  color: #eebd47;
}

.site-footer-inner {
  max-width: 1290px;
  margin: 0 auto;
  padding: 0 1.5rem;
}

.footer-top {
  padding: 4.5rem 0 1.5rem;
}

.footer-brand {
  text-align: left;
}

.footer-logo {
  display: block;
  max-width: 200px;
  width: auto;
  height: auto;
  margin: 0;
  filter: none;
}

.footer-logo-link {
  display: inline-block;
}

.footer-logo--rco {
  max-width: 200px;
}


.footer-logo-text {
  font-family: var(--font-heading);
  font-weight: 800;
  font-size: 1.75rem;
  color: #ffffff;
}

.footer-middle {
  display: grid;
  grid-template-columns: 1fr;
  gap: 2rem;
  padding: 1rem 0 2rem;
}

.footer-col {
  min-width: 0;
}

.footer-heading,
.site-footer .footer-widget h3,
.site-footer .widget-title {
  font-family: var(--font-body);
  font-size: 1.05rem;
  font-weight: 700;
  letter-spacing: 0.02em;
  margin: 0 0 0.75rem;
  color: #ffffff;
  text-transform: none;
}

.footer-address,
.footer-col p,
.footer-widget .textwidget {
  font-size: 0.95rem;
  line-height: 1.7;
  margin: 0 0 1rem;
}

.footer-cta {
  display: inline-block;
  margin-top: 0.25rem;
  padding: 0.65rem 1.25rem;
  border-radius: 6px;
  background: #ffffff;
  color: #689776 !important;
  font-weight: 600;
  font-size: 0.875rem;
  text-transform: uppercase;
  letter-spacing: 0.04em;
}

.footer-cta:hover {
  background: #eebd47;
  color: #1a202c !important;
}

.footer-social {
  display: flex;
  gap: 0.75rem;
  list-style: none;
  margin: 1rem 0 0;
  padding: 0;
}

.footer-social .social-link {
  display: block;
  width: 36px;
  height: 36px;
  margin: 0;
}

.footer-menu,
.footer-widget .menu {
  list-style: none;
  margin: 0;
  padding: 0;
}

.footer-menu li,
.footer-widget .menu li {
  margin: 0 0 0.5rem;
}

.footer-menu a,
.footer-widget .menu a {
  font-size: 0.95rem;
  line-height: 1.5;
  border-bottom: 1px solid transparent;
  padding-bottom: 1px;
}

.footer-menu a:hover,
.footer-widget .menu a:hover {
  border-bottom-color: currentColor;
}

.footer-bottom {
  border-top: 1px solid rgba(255, 255, 255, 0.2);
  padding: 1.5rem 0;
  font-size: 0.9rem;
}

.footer-copyright {
  margin: 0;
}

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

@media screen and (min-width: 768px) {
  .footer-middle {
    grid-template-columns: repeat(2, minmax(0, 1fr));
    gap: 2rem 2.25rem;
  }
}

@media screen and (min-width: 1024px) {
  .footer-middle {
    grid-template-columns: repeat(4, minmax(0, 1fr));
    column-gap: 2.25rem;
    padding-bottom: 2.5rem;
  }

  .footer-top {
    padding-top: 5rem;
  }
}

/* Legacy class aliases so old CSS selectors don't break */
.site-footer-block {
  /* superseded by .site-footer */
}



a {
  color: #b23c25;
  text-decoration: none;
  }

h1 a, h2 a, h3 a, h4 a, h5 a, h6 a {
  color: #000000;
  transition: color 0.5s ease;
  }

h1 a:hover, h2 a:hover, h3 a:hover, h4 a:hover, h5 a:hover, h6 a:hover {
  color: #b23c25;
  text-decoration: none;
  }

header h1 {
  font-family: var(--font-heading);
  font-size: 1.75em;
  }

.magazine-header {
  display: flex;
  flex-direction: column;
  justify-content: space-evenly; 
  text-align: center;
  margin: 36px 0; 
  }
  
.magazine-title {
  font-family: var(--font-body);
  font-size: 28px;
  letter-spacing: 2px;
  text-transform: uppercase;
  margin: 12px 0;
  }
  
.magazine-cover {
  margin: 0 0 24px 0
  }
  
.magazine-cover-image {
  display: block;
  max-width: 360px;
  width: 100%;
  height: auto;
  margin: 0 auto;
  border: 1px solid #efefef;
  }
  
.magazine-cta {
  display: flex;
  justify-content: center;
  margin: 12px 0;
  }
  
.magazine-cta .button {
  margin: 0 8px;
  }

.magazine-toc {
  max-width: 960px;
  margin: 36px auto;
  padding: 0 18px;
  }
  
.magazine-section-heading {
  font-family: var(--font-body);
  font-size: 24px;
  letter-spacing: 6px;
  text-transform: uppercase;
  margin: 36px 0 12px 0;
  padding-bottom: 12px;
  text-align: center;
  border-bottom: 1px solid #efefef;
  }

@media screen and (min-width: 972px) {
  
  .magazine-title {
  font-size: 32px;
  }
  
  .magazine-toc {
  padding: 0;
  }
  }
  
.hero {
  position: relative;
  }

.hero figure {
  margin: 0;
  position: relative;
  }
  
.hero header {
  padding: 12px;
  text-align: center;
  line-height: 1.2;
  }

.hero header h1 {
  font-family: var(--font-haeding);
  font-size: 24px;
  font-weight: 600;
  word-spacing: 2px;
  margin: 0 0 12px 0;
  }

.hero header p {
  font-family: var(--font-body); 
  font-size: 18px;
  line-height: 1.25;  
  margin: 12px 0;
  }

.hero header .byline { 
  margin: 0;
  }
  
@media screen and (min-width: 1024px) {

  .hero header {
  position: absolute;
  top: 50%;
  left: 50%;
  transform: translateY(-50%) translateX(-50%);
  background-color: rgba(255, 255, 255, 0.75);
  width: auto; 
  min-width: 50%;
  }
  
  .hero header h1 {
  font-size: 32px;
  line-height: 1.2;
  word-spacing: 2px;
  margin: 0 0 12px 0;
  }
  
  .hero header p {
  font-size: 20px;
  } 
  }

@media screen and (min-width: 1080px) {

  .hero header h1 {
  font-size: 42px;
  margin: 0 0 18px;
  } 
  }  
   

/* Page / article figure featured image — ratio on IMG so figcaption sits below, not clipped */
.article-figure {
  overflow: visible;
}
.article-figure img,
.article-figure-image {
  object-fit: cover;
  width: 100%;
  height: auto;
  display: block;
}

/* Homepage lede — classic 5280 overlay layout (title/byline on image at desktop) */
.lede-item {
  position: relative;
  margin: 0;
}

.lede-item-image {
  margin: 0;
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.lede-item-image img,
.lede-item-thumbnail-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}

.lede-item-header {
  padding: 18px;
  text-align: center;
  text-wrap-style: balance;
}

.lede-item-title {
  font-family: var(--font-heading);
  font-size: 34px;
  letter-spacing: 1px;
  margin: 0 0 .25em 0;
}

.lede-item-title a {
  color: inherit;
  text-decoration: none;
}

.lede-item-excerpt {
  font-family: var(--font-body);
  font-size: 20px;
  font-weight: 500;
  line-height: 1.382;
  margin: 10px 25px 20px 25px;
}

.lede-item-excerpt p {
  margin: 0;
}

.lede-item-header .byline {
  font-size: 18px;
}

@media screen and (min-width: 768px) {
  .lede-item-title {
    font-size: 38px;
  }

  .lede-item-excerpt {
    font-size: 28px;
  }
}

@media screen and (min-width: 1024px) {
  .lede-item-title {
    font-size: 36px;
  }

  /* Desktop: pin title block to bottom of lede image (not vertically centered) */
  .lede-item-header {
    position: absolute;
    top: unset;
    right: auto;
    left: 50%;
    bottom: 0;
    transform: translate(-50%, 0);
    margin: 0;
    background-color: rgba(255, 255, 255, 0.55);
    width: auto;
    max-width: 60%;
    padding: 18px;
    border-radius: 9px 9px 0 0;
  }
}


.package-cover {
  position: relative;
  }

.package-header {
  margin-top: 24px;
  margin-bottom: 24px;
  }
  
.package-title {
  font-family: var(--font-heading);
  font-size: 28px;
}
  
.package-deck {
  font-family: var(--font-body);
  font-size: 18px; 
  line-height: 1.382;
  }  

.package-figure-caption {
  margin: 0 0 18px 0;
  padding: 12px 18px;
  }
  
.page-content,  
.package-content {
  max-width: 756px;
  margin-top: 24px;
  margin-bottom: 24px;
  margin-left: auto;
  margin-right: auto;
  font-family: "adobe-caslon-pro", Serif;
  font-size: 20px;
  }

@media screen and (min-width: 1116px) {
  
  .package-cover {
  margin-left: calc( -100vw / 2 + 100% / 2 );
  margin-right: calc( -100vw / 2 + 100% / 2 );
  }
  
  .package-header {
  position: absolute;
  top: 0;
  left: 0;
  bottom: 0;
  margin: 0;
  padding: 0 36px;
  width: 33.333%;
  height: 100%;
  text-align: left;
  color: white;
  display: flex;
  flex-direction: column;
  justify-content: center;
  background-color: rgba(0, 0, 0, 0.60);
  text-shadow: 1px 1px 2px black;
  }
  
  .package-header .article-byline a {
  color: white;
  }
  
  .package-header .article-byline-photo-link,
  .package-header .article-byline-photo {
  display:none;
  }
  
  .package-title {
  font-size: 34px;
  }

  .package-content {
  margin-top: 60px;
  margin-bottom: 60px;
  }
}
  
@media screen and (min-width: 1440px) {
  
  .package-cover {
  margin-left: auto;
  margin-right: auto;
  max-width: 1440px;
  }

  .package-header .article-byline {
  justify-content: center;
  }

  .package-header {
  text-align: center;
  }
}

.guide-sponsor-block {
  position: relative;
  width: 100%;
  text-align: center;
  height: 36px;
  overflow: hidden;
  background-color: white;
  }

.guide-sponsor-title {
  font-size: 12px;
  text-transform: uppercase;
  font-family: var(--font-body);
  padding-right: 12px;
  } 
  
.guide-sponsor-link {
  display: inline-block;
  }

.guide-sponsor-logo {
  max-height: 24px;
  width: auto;
  margin: 6px;
  vertical-align: middle;
  }
  
.guide-cover {
  position: relative;
  margin-bottom: 36px;
  }

.guide-image {
  display: block;
  max-width: 100%;
  width: 100%;
  height: auto;
  }

.guide-image-caption {
  padding: 12px 18px;
  }

.guide-heading {
  font-family: var(--font-body);
  text-transform: uppercase;
  color: #ffffff;
  position: absolute;
  bottom: 32px;
  left: 18px;
  padding: 0;
  }
  
.guide-logo {
  display: inline-block;
  height: 16px;
  width: auto;
  margin: 0;
  }  
  
.guide-title {
  font-size: 60px;
  line-height: 1;
  margin: 0;
  }

.guide-subtitle {
  font-size: 20px;
  }

.guide-link {
  color: #ffffff;
  }
  
@media screen and (min-width: 1024px) { 

  .guide-image-caption {
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.7);
  color: white;
  border-bottom: none;
  margin: 0;
  padding: 12px;
  max-width: 24%;
  }

  .guide-heading {
  bottom: -14px;
  }
  
  .guide-logo {
  height: 24px; }
  
  .guide-subtitle {
  font-size: 30px; }
  }
  
@media screen and (min-width: 1280px) {    
  
  .guide-heading {
  left: calc((100vw - 1244px)/2);
  }
  }
  
@media screen and (min-width: 1476px) {    
  
  .guide-heading {
  left: calc((100vw - 1280px)/2);
  }
  }  

.category-intro {
  margin: 24px auto 12px;
  padding: 0 1rem 18px;
  text-align: left;
  max-width: 1440px;
}

.category-intro-title {
  font-family: var(--font-heading), Sans-Serif;
  font-size: 27px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 12px 0;
  padding: 0 0 18px 0;
  border-bottom: 1px solid #efefef;
}

.category-intro-description {
  font-family: var(--font-body);
  font-size: 1.05rem;
  line-height: 1.5;
  color: #444;
  text-align: left;
  margin: 0 auto; /* center the 720px block; text stays left */
  max-width: 720px;
}

.category-intro-description p {
  margin: 0 0 0.75em;
}

.category-intro-description p:last-child {
  margin-bottom: 0;
}

@media screen and (min-width: 1024px) {
  .category-intro-title {
    font-size: 36px;
  }
}

.featured-block { 
  margin: 60px auto;
  }
  
.featured-block-heading,
.article-body .featured-block-heading {
  font-family: var(--font-heading), Sans-Serif;
  font-size: 27px;
  font-weight: 600;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 18px 0;
  padding: 0 0 18px 0;
  border-bottom: 1px solid #efefef;
  }
  
.featured-block-description {
  font-family: var(--font-body);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #888888;
  display: block;
  margin: 20px 0;
  }
  
.featured-items {
  display: block;
  }
  
.featured-item {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #efefef;
}
  
.featured-item-thumbnail {
  flex: 0 0 120px;
  order: 1;
  margin: 0 0 0 18px;
  padding: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.featured-item-thumbnail img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}  

.featured-item-header {
  text-align: left;
  flex: 2 0 0;
  padding: 0; 
}
  
.featured-item-title {
  font-family: var(--font-heading);
  font-size: 20px;
  word-spacing: 2px;
  margin: 0 0 .618em 0;
  }
  
.featured-item-excerpt,
.featured-item-header p,
.featured-item-deck {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.382;
  margin: 0;
  }
  
@media screen and (min-width: 480px) {
	 
  .featured-item-thumbnail {
	flex: 1 0 0;
	aspect-ratio: 3 / 2;
	overflow: hidden;
  }
	
  .featured-item-thumbnail img {
	object-fit: cover;
	width: 100%;
	height: 100%;
  }
  
  }  

@media screen and (min-width: 640px) {
  
  .featured-block {
  padding-bottom: 18px;
  border-bottom: 1px solid #efefef;
  }
	
  .featured-items {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 36px;
  padding: 0;
  }
  
  .featured-item {
  display: block;
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
  }
  
  .featured-item-header {
  text-align: center;
  }
  
  .featured-item-thumbnail {
  margin: 0; }

  .featured-item-title {
  margin: .382em 0 .618em 0;
  }
   
  }

@media screen and (min-width: 1024px) {
  .featured-block-heading,
  .article-body .featured-block-heading {
    font-size: 36px;
  }
}

@media screen and (min-width: 1024px) {
  
  .featured-items,
  .four-column-grid {
  grid-template-columns: repeat(4, 1fr);
  }
  
  .two-column-grid {
	grid-template-columns: repeat(2, 1fr);
  }
  
  .three-column-grid {
  grid-template-columns: repeat(3, 1fr);
  }
  
}          

  
.listing-photo-thumbnail {
  flex: 1;
  order: 2;
  }

.listing-photo-image {
  max-width: 100%;
  height: auto;
  margin: 0;
  }
  
.listing-header {
  flex: 1.5;
  margin-right: 18px;
  }

.listing-title {
  font-family: "Quarto A","Quarto B",Serif;
  font-size: 24px;
  margin: 0 0 12px 0;
  }
  
.item-categories,
.listing-categories {
  font-family: AvenirLTStd-Book,Sans-Serif;
  font-size: 16px;
  display: block;
  margin: 9px 0;
  text-transform: uppercase;
  letter-spacing: 1px;
  line-height: 1.382;
  }

.sponsored-flag {
  font-family: var(--font-body);
  display: inline-block;
  font-size: 14px;
  color: #e69138;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 1px solid;
  padding: 3px 6px 1px 6px;
  margin: 9px 0;
  }

.best-restaurant-flag {
  font-family: var(--font-body);
  display: inline-block;
  font-size: 14px;
  color: #b23c25;
  text-transform: uppercase;
  letter-spacing: 1px;
  border: 1px solid;
  padding: 3px 6px 1px 6px;
  margin-bottom: 18px;
  margin-right: 16px;
  }

.listing-location {
  display: block;
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.25;
  margin: 18px 0;
}


.listing-details {
  margin: 24px 0;
  border-top: 1px solid #efefef;
  border-bottom: 1px solid #efefef;
}

.sponsored-heading {
  margin: 18px 0;
  font-family: "Tungsten A","Tungsten B",Sans-Serif;
  font-size: 22px;
  text-transform: uppercase;
  letter-spacing: 1px;
  display: -webkit-flex;
  display: flex;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  clear: left;
  }
  
.sponsored-heading:before,
.sponsored-heading:after {
  content: "";
  -webkit-flex-grow: 1;
  flex-grow: 1;
  border-top: 1px solid #efefef;
  -webkit-transform: translateY(50%);
  transform: translateY(50%);
  }

.sponsored-heading:before {
  margin: 0 12px 0 0;
  }

.sponsored-heading:after {
  margin: 0 0 0 12px;
  }
  
@media screen and (min-width: 1080px) {
	
  .single .listing-title {
  font-size: 36px;
  margin-bottom: 18px;
  }
  
  .single .listing-photo-image {
  float: left;
  max-width: 320px;
  height: auto;
  margin: 0 18px 18px 0;
  }
	
  }

.article-header {
  margin-top: 24px;
  margin-bottom: 24px;
}

.article-title {
  font-family: var(--font-heading);
  font-size: 28px;
  word-spacing: 2px;
  margin: .5em 0;
}

.article-title-alt {
  font-family: "AvenirLTStd-Black", sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 32px;
  text-align: center;
  text-transform: uppercase;
}

.single-sponsored_content .article-title {
  font-family: "AvenirLTStd-Black", sans-serif;
  font-weight: 500; 
}

.article-sponsored {
  margin-top: 78px;
}

@media screen and (min-width: 640px) {
  .article-sponsored {
  margin-top: 18px;
  }
}

.article-taxonomy {
  display: block; 
  font-family: var(--font-body);
  font-size: 15px;
  line-height: 1.382;
  text-transform: uppercase;
  letter-spacing: 1px;
  margin: 0; 
  }
  
.article-notice {
  display: block;
  font-family: var(--font-body);
  font-size: 16px;
  margin: 1em 0;
  }

.article-deck {
  font-family: var(--font-body);
  font-size: 18px; 
  line-height: 1.382;
  color: #757575;
}

.single-sponsored_content .article-deck {
  font-size: 20px;
}   
  
.article-figure {
  position: relative;
  margin: 0 0 36px 0;
}

.article-figure-caption {
  /* match figure figcaption, right-aligned */
  font-family: var(--font-body);
  font-size: 14px;
  color: #888888;
  letter-spacing: 1px;
  display: block;
  padding-top: 12px;
  padding-bottom: 12px;
  padding-left: 0;
  padding-right: 0;
  border-bottom: 1px solid #efefef;
  text-align: right;
}

.article-byline {
  display: flex;
  flex-direction: row;
  align-items: center;
}

.article-byline-photo {
  height: 48px;
  width: 48px;
  margin-right: 16px;
  -webkit-clip-path: circle(24px at 24px 24px);
  clip-path: circle(24px at 24px 24px);
}

.sponsored-content-title {
  font-family: "AvenirLTStd-Black", sans-serif;
  font-size: 20px;
  margin: .5em 0;
}

.sponsored-content-byline {
  display: block;
  font-family: var(--font-body);
  text-transform: uppercase;
  font-size: 12px;
  color: #e69138;
  letter-spacing: 1px;
  margin: 0;
}

.sponsored-content-notice {
  font-family: var(--font-body);
  font-size: 20px; 
  font-weight: normal;
  margin: 48px 0;
  padding: 24px 0;
  border-top: 3px double #c0c0c0; 
  border-bottom: 3px double #c0c0c0; 
  text-align: left;
}

@media screen and (min-width: 640px) {

  .sponsored-content-byline {
  margin: 1em 0;
  }
}

@media screen and (min-width: 1024px) {
  .article-title {
  font-size: 34px; } 

  .article-deck {
  font-size: 20px; }
  
  .sponsored-content-title {
  font-size: 24px;
  }
  
  .sponsored-content-notice {
  font-size: 24px; 
  text-align: center;
  }
  
}

.article-content {
  font-family: "adobe-caslon-pro", Serif;
  font-size: 20px;
  line-height: 1.618; }
  
.article-footer {
  margin: 1em 0;
  padding: 0;
  border-top: 1px solid #efefef;
  border-bottom: 1px solid #efefef;
}
  
.single-sponsored_content .article-content {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.618; }  
  
.single-sponsored_content a {
  color: #e69138; }  

.article-content h2,
.article-content h3,
.article-content h4,
.article-content h5,
.article-content h6 {
  font-family: var(--font-heading);
  font-weight: 600;
  }

.single-sponsored_content .article-content h2,
.single-sponsored_content .article-content h3,
.single-sponsored_content .article-content h4,
.single-sponsored_content .article-content h5,
.single-sponsored_content .article-content h6 {
  font-family: "AvenirLTStd-Black", sans-serif;
  font-weight: normal;
  }

.article-content h2 {
  font-size: 28px; }

.article-content h3 {
  font-size: 24px; }

.article-content h4,
.article-content h5,
.article-content h6 {
  font-size: 20px; }
  
.article-content p {
  margin: 0 0 1em 0; }    

.article-content ul,
.article-content ol {
  font-family: var(--font-body);
  font-size: 18px; 
  line-height: 1.618;
  padding-left: 36px;
  margin: 24px 0;
  }

.article-content ul {
  list-style-type: square;
  }

.article-content ul li {
  padding: 0 0 18px 0;
  }

  
.article-content ol li {
  margin: 0 0 18px 0; 
  }
  
.gallery-block {
  margin: 0 12px;
}
  
.gallery-content {
  margin-top: 18px;
  overflow: hidden;
} 
  
.gallery-title {
  font-family: var(--font-heading);
  font-size: 24px;
}

.article-content .gallery {
  margin: 24px 0;
  }

.swiper {
  padding-bottom: 24px !important;
  }

.swiper-button-next, 
.swiper-button-prev {
  color: #00b9f2 !important;
}

.swiper-pagination-fraction {
  font-family: var(--font-body);
  font-size: 18px;
  display: inline-block !important;
  padding: 6px 9px;
  bottom: -0px !important;
  color: white;
  background-color: #00b9f2;
  border-radius: 18px;
  right: 0 !important;
  left: unset !important;
  width: auto !important;
  }

.gallery-caption,
.gallery-captions {
  font-family: var(--font-body);
  font-size: 14px;
  line-height: 1.5;
  display: block;
  border: none;
  padding: 10px 0 18px 0;
  }
  
.gallery-content .gallery-caption {

  }

@media screen and (min-width: 768px) {

  .gallery-block {
	display: grid;
	grid-template-columns: 1fr 300px;
	grid-template-areas: "main sidebar";
	gap: 18px 36px;
	margin: 0 36px;
  }
  }

.address {
  font-family: var(--font-body); 
  font-size: 16px; }
  
dl {
  margin: 20px 0; }
  
dt {
  font-family: var(--font-body);
  font-size: 18px;
  line-height: 1.5; 
  margin-top: 12px; }

dd {
  font-family: var(--font-body);
  font-size: 16px;
  line-height: 1.5;
  margin: 0; }

dd p {
  margin: 0; }

dl.inline {
  display: grid;
  grid-template-columns: max-content 1fr;
  grid-gap: 12px; }

dl.inline dt {
  text-align: right;
  margin: 0;
}


.magazine-block {
  display: block;
  }
  
.magazine-block-heading {
  font-family: var(--font-body);
  font-size: 24px;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 30px 0;
  }
  
.magazine-block-description {
  font-family: var(--font-body);
  font-size: 12px;
  text-transform: uppercase;
  letter-spacing: 2px;
  color: #888888;
  display: block;
  margin: 20px 0;
  }  
  
.magazine-issues {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  grid-gap: 18px;
  }
  
.magazine-issue-cover {
  border: 1px solid #efefef; 
  }
  
.magazine-issue-title {
  font-family: var(--font-body);
  font-size: 20px;
  line-height: 1.382;
  color: #000000;
  text-align: center;
  letter-spacing: normal;
  line-break: normal;
  margin: .5em;
  padding: 0;
  border-bottom: none; 
  }
  
.magazine-issue-link {
  color: #000000;
}

@media screen and (min-width: 768px) {
  
  .magazine-issues {
  grid-gap: 36px;
  grid-template-columns: repeat(4, 1fr);
  }
  
  .magazine-issue {
  margin-bottom: 0;
  } 
  }

.promotion-block { }
  
.promotion-heading {
  font-family: var(--font-body);
  font-size: 1.5em;
  letter-spacing: 6px;
  text-transform: uppercase;
  text-align: left;
  margin: 1.125em 0; }

.promotion-items {
  display: block; 
 }
 
.promotion-item {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #efefef;
  }
  
.promotion-item-thumbnail {
  flex: 0 0 120px;
  order: 1;
  margin: 0 0 0 18px;
  padding: 0; }
  
.promotion-item-thumbnail img {
  object-fit: cover;
  width: 120px;
  height: 120px;  
}   

.promotion-item-header {
  text-align: center;
  flex: 2 0 0;
  padding: 0; 
}
 
.promotion-item-title {
  font-family: var(--font-body);
  font-size: 20px;
  color: #000000;
  text-align: left;
  margin: 0;
  padding: 0; 
  }

@media screen and (min-width: 480px) {
	   
	.promotion-item-thumbnail {
	flex: 1 0 0; }
	
	.promotion-item-thumbnail img {
	object-fit: contain;
	width: 100%;
	height: auto;
	}
	
  }  
  
  @media screen and (min-width: 640px) {
	
  .promotion-items {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	grid-gap: 36px;
	padding: 0;
	}
	
  .promotion-item {
	display: block;
	margin-bottom: 0;
	padding-bottom: 0;
	border-bottom: none;
  }
  
  .promotion-item-thumbnail {
	margin: 0; }
  
  .promotion-item-title {
	margin: .75em 0;
	text-align: center;
	}
	 
  }
  
  @media screen and (min-width: 800px) {
  
  .promotion-items {
	grid-template-columns: repeat(4, 1fr);
	}
	
  }
  
  
.subscription-choices {
  display: block; 
  }

.subscription-choices .magazine-cover {
  margin: 60px auto 30px auto;
  max-width: 300px;
  }

.subscription-options {
  margin: 30px auto 60px auto;
  max-width: 300px;
}

.magazine-cover-combo {
  position: relative;
  height: 420px;
  }

.magazine-cover-combo .magazine-cover-image:first-child {
position: relative; 
  width: 66%; 
  margin: 0;
  top: 0; 
  left: 0;
  }

.magazine-cover-combo .magazine-cover-image:last-child {
  position: absolute; 
  width: 66%; 
  margin: 0;
  bottom: 0; 
  right: 0;
}

.manage-subscription {
  display: flex;
  flex-direction: column;
  margin: 0 auto;
  max-width: 300px;
}

@media screen and (min-width: 720px) {

  .subscription-choices {
  display: grid;
  grid-template-columns: repeat(3, 1fr);
  grid-template-rows: repeat(2, min-content);
  grid-gap: 24px 60px;
  margin-top: 60px;
  margin-bottom: 60px;
  }
  
  .subscription-choices .magazine-cover {
  margin: 0;
  max-width: 320px;
  }
  
  .subscription-options {
  margin: 0;
  max-width: 320px;
  }  
	
  .tm-cover {
  grid-column: 1;
  grid-row: 1;
  }
  
  .tm-options {
  grid-column: 1;
  grid-row: 2;
  }

  .tm-home-cover {
	grid-column: 2;
	grid-row: 1;
	}
  
  .tm-home-options {
  grid-column: 2;
  grid-row: 2;
  }

  .combo-cover {
  grid-column: 3;
  grid-row: 1;
  }
  
  .magazine-cover-combo {
  height: 100%;
  }
  
  .combo-options {
  grid-column: 3;
  grid-row: 2;
  }
  
  .manage-subscription {
  max-width: 320px;
  }
}

.advertisement:before {
  font-family: system-ui, sans-serif;
  font-size: 10px;
  color: #cccccc;
  text-align: center;
  text-transform: uppercase;
  letter-spacing: 2px;
  display: block;
  content: "Advertisement";
  margin: 0 0 10px 0;
  }

.ad-slot {
  margin: 0 auto;
  text-align: center;
  }

.ad-slot-header {
  margin-top: 78px;
  margin-bottom: 24px;
  }
  
.ad-slot-in-page,
.ad-slot-footer,
.ad-slot-sticky {
  margin-top: 24px;
  margin-bottom: 24px;
  text-align: center;
  }

.archive-sidebar .ad-slot-aside:before {
  display: none;
  }
	
.ad-slot-sticky-container {
  display: block;
  position: fixed;
  bottom: 0;
  left: 0;
  right: 0;
  z-index: 9999;
  transition: 1s ease-in-out;
  transform: translateY(100%);
  width: 100%;
  max-width: 100%;
  text-align: center;
  background-color: rgba(0,0,0,0.875);
  }

.ad-slot-close-ad {
  display: block;
  padding: 3px 0;
  text-align: center;
  font-family: sans-serif;
  font-size: 12px;
  letter-spacing: 1px;
  text-transform: uppercase;
  background-color: #333;
  color: white;
  cursor: pointer;
  }

.ad-slot-reveal-ad {
  transform: translateY(0);
  }


@media screen and (min-width:1080px) {
  
  .ad-slot-header {
  margin-top: 24px;
  }
  
  .archive-sidebar .ad-slot-aside:before {
  display: block;
  }

  .single .ad-slot-in-page {
  display: none;
  margin: 0;
  }
  
  }

  
.subscribe-block {
  margin: 0 0 18px 0;
  border-bottom: 1px solid #efefef;
  }
  
@media screen and (min-width:1080px) {
  .post-template-single-wide .subscribe-block {
  padding-top: 18px;
  border-top: 1px solid #efefef;
  }
}

.subscribe-note {
  font-family: "AvenirLTStd-Medium", sans-serif;
  font-size: 16px;
  text-align: left;
}

.subscribe-form {
  display: flex;
  flex-direction: column;
  margin: 0 0 18px 0;
}

.subscribe-form input[type=email] {
  flex: 3;
}

.subscribe-form input[type=button], 
.subscribe-form button {
  flex: 1;
  text-transform: uppercase;
  margin: 12px 0 0 0;
  padding: 6px 9px;
  border: 1px solid #b23c25;
  background-color: #b23c25;
  color: white;
}

@media screen and (min-width:360px) {
  .subscribe-form {
  flex-direction: row;    
  }

  .subscribe-form input[type=button],
  .subscribe-form button {
  margin: 0 0 0 12px;
  }
}
 
.ia-block {
  display: flex;
  flex-direction: column;
  justify-content: center;
  margin: 40px 0;
  padding: 20px;
  background-color: #efefef; }

.ia-block-item {
  flex: 1; }
  
.ia-block-item:first-child {
  padding: 0;
  margin: 0; }
  
.ia-block-item:last-child {
  padding: 0;
  margin: 40px 0 0 0; }    
 
.ia-block-title {
  font-family: var(--font-body);
  font-size: 20px;
  text-transform: uppercase;
  text-align: center; 
  margin: 0 0 20px 0; } 
  
.ia-block-description {
  display: block;
  font-family: system-ui, sans-serif;
  font-size: 12px;
  text-transform: uppercase;
  text-align: center;
  color: #888888;
  letter-spacing: 1px;
  margin: 12px 0; }

.ia-block-promotion {
  font-family: var(--font-heading);
  font-weight: 600;
  font-size: 32px; 
  margin: 0 0 24px;
  text-transform: none;
}

.subscribe-cta {
  text-align:center;
}

.ia-block-cta {
  font-family: var(--font-body);
  font-size: 20px;
  text-transform: uppercase;
  text-align: center; 
  margin: 0 0 20px 0; }

.ia-block-icon {
  display: block;
  max-width: 120px;
  height: auto;
  margin: 0 auto 12px auto; }
  
.ia-block-image {
  max-width: 100%;
  height: auto; }  
 
.ia-block-list {
  font-size: 14px !important;
  padding-left: 0 !important;
  list-style-type: none !important; }

.ia-block-list-item::before {
  content: "";
  background-image: url("../images/list-style-image.png");
  background-size: contain;
  display: inline-block;
  width: 16px;
  height: 16px;
  position: relative;
  top: 2.5px;
  margin-right: 10px; }

.ia-block-list-item {
  padding: 0 0 12px 0 !important; }

.ia-block-list-item a {
  color: #000000; }

.ia-block-item .ad-slot-ip {
  margin: 0px; }
  
@media screen and (min-width: 768px) {
  
  .ia-block {
  flex-direction: row; }
  
  .ia-block-item:last-child {
  padding: 0;
  margin: 0 0 0 40px; }
	
  .ia-block.related-articles .ia-block-item:first-child {
  display: none;
  }
  
  .ia-block.related-articles .ia-block-item:last-child {
  margin: 0;
  }
  
  .ia-block.related-articles .ia-block-title {
  text-align: left;
  }
  
}

article .mid-leaderboard, 
.toc .mid-leaderboard {
  margin-left: calc(50% - 50vw);
  margin-right: calc(50% - 50vw); }

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

figure figcaption {
  font-family: var(--font-body);
  font-size: 14px;
  color: #888888;
  letter-spacing: 1px;
  display: block;
  padding-top: 12px;
  padding-bottom: 12px;
  padding-left: 0;
  padding-right: 0;
  border-bottom: 1px solid #efefef; 
  }

.byline, time {
  font-family: var(--font-body);
  font-size: 12px;
  line-height: 1.382;
  display: block; 
}
  
@media screen and (min-width: 480px) {
  
  .byline, time {
  font-size: 14px;
  }
}
  

.byline a, time a {
  color: black; }

.byline a:hover, time a:hover {
  color: #b23c25;
  text-decoration: none; }
  
.authors-block {
  margin: 1em 0;
  padding: 0; }

.author-item {
  display: flex;
  flex-direction: row;
  align-items: center;
  margin: 0 0 24px 0;
}

.author-item:last-child {
  margin: 0;
}

.author-item > a {
  display: inline-flex;
}

.author-photo {
  height: 60px;
  width: 60px;
  margin-right: 12px;
  -webkit-clip-path: circle(30px at 30px 30px);
  clip-path: circle(30px at 30px 30px); }

.author-meta {
  display: flex;
  flex-direction: column;
  justify-content: space-between;
  line-height: 1.618;
  }

.author-name {
  font-family: "Tungsten A", "Tungsten B", Sans-Serif;
  font-size: 20px;
  letter-spacing: 1px;
  display: block; }

.author-bio {
  font-family: var(--font-body);
  font-size: 14px;
  margin-bottom: 0 !important; }

article figure {
  margin: 0 auto; }

section > figure:first-child {
  margin-top: 0; }

blockquote {
  border: none;
  border-left: 1px solid #efefef;
  margin: 36px;
  padding-left: 24px;
  padding-right: 24px; 
  }

.pull-quote {
  border: none;
  border-top: 1px solid #efefef;
  border-bottom: 1px solid #efefef; }

blockquote p,
.pull-quote p {
  font-family: var(--font-heading);
  font-size: 24px;
  font-style: normal;
  }
  
blockquote cite {
  font-family: "Tungsten A", "Tungsten B", Sans-Serif;
  text-transform: uppercase;
  display: block;
  margin: .5em 0;
  font-size: 1em;
  letter-spacing: 2px;
  font-style: normal; }
  
.button {
  display: block;
  color: white;
  font-family: system-ui;
  background-color: #b23c25;
  text-transform: uppercase;
  padding: 9px 12px;
  margin: 0 0 16px 0;
  text-align: center;
  border: none;
  }
  
label {
 font-family: system-ui;
 font-size: 20px;
 font-weight: 600;
}
  
.label-above {
  display: block;
  margin: 1em 0 .5em 0;
}

.label-checkbox {
  order: 1;
  margin-left: .5em;
}

input, 
button {
  font-family: system-ui;
  font-weight: 400;
  font-size: 16px;
  color: inherit;
  line-height: 1.3;
  display: block;
  box-sizing: border-box;
  margin: 0;
  padding: 6px 9px;
  max-width: 100%;
  border: 1px solid #ccc;
  border-radius: 4px;
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  background-color: #fff;
  }
  
.input-full-width {
  width: 100%;
  margin: .5em 0;
}
  
input[type=search] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  }
  
button,
input[type=submit],
input[type=button] {
  flex: 1;
  text-transform: uppercase;
  padding: 6px 12px;
  border-radius: 4px;
  border: 1px solid #efefef;
  background-color: #f2f2f2;
  color: #000000;
  }

button,
input[type=submit]:hover,
input[type=button]:hover {
  cursor: pointer;
}

input[type=checkbox] {
  -webkit-appearance: checkbox;
  -moz-appearance: checkbox;
  appearance: checkbox;
  height: 20px;
  min-width: 20px;
}

select {
  font-family: system-ui;
  font-weight: 400;
  font-size: 16px;
  color: inherit;
  line-height: 1.3;
  display: block;
  box-sizing: border-box;
  margin: 0;
  padding: 6px 9px;
  max-width: 100%;
  border: 1px solid #ccc;
  border-radius: 4px;
}

/* class applies to select element itself, not a wrapper element */
.select {
  display: block;
  font-size: 16px;
  font-family: system-ui;
  font-weight: 400;
  color: inherit;
  line-height: 1.3;
  padding: 6px 9px;
  width: 100%;
  max-width: 100%; /* useful when width is set to anything other than 100% */
  box-sizing: border-box;
  margin: 0;
  border: 1px solid #ccc;
  box-shadow: 0 1px 0 1px rgba(0,0,0,.04);
  border-radius: 4px;
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  background-color: #fff;
  /* note: bg image below uses 2 urls. The first is an svg data uri for the arrow icon, and the second is the gradient. 
  for the icon, if you want to change the color, be sure to use `%23` instead of `#`, since it's a url. You can also swap in a different svg icon or an external image reference
  
  */
  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23007CB2%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),
  linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%);
  background-repeat: no-repeat, repeat;
  /* arrow icon position (1em from the right, 50% vertical) , then gradient position*/
  background-position: right .7em top 50%, 0 0;
  /* icon size, then gradient */
  background-size: .65em auto, 100%;
}
/* Hide arrow icon in IE browsers */
.select::-ms-expand {
  display: none;
}
/* Hover style */
.select:hover {
  border-color: #888;
}
/* Focus style */
.select:focus {
  border-color: #aaa;
  /* It'd be nice to use -webkit-focus-ring-color here but it doesn't work on box-shadow */
  box-shadow: 0 0 1px 3px rgba(59, 153, 252, .7);
  box-shadow: 0 0 0 3px -moz-mac-focusring;
  color: #222; 
  outline: none;
}

/* Set options to normal weight */
.select option {
  font-weight:normal;
}

/* Support for rtl text, explicit support for Arabic and Hebrew */
*[dir="rtl"] .select, :root:lang(ar) .select, :root:lang(iw) .select {
  background-position: left .7em top 50%, 0 0;
  padding: .6em .8em .5em 1.4em;
}

/* Disabled styles */
.select:disabled, .select[aria-disabled=true] {
  color: graytext;
  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22graytext%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E'),
  linear-gradient(to bottom, #ffffff 0%,#e5e5e5 100%);
}

.select:disabled:hover, .select[aria-disabled=true] {
  border-color: #aaa;
}

.form-field-group {
  display: flex;
  flex-direction: column;
  margin: 1em 0;
}

.form-checkbox-group {
  display: flex;
  flex-direction: row;
  margin: 1em 0;
  align-items: center;
}

.search-block {
  margin-top: 36px;
  margin-bottom: 18px;
  border-bottom: 1px solid #efefef;
  }

.search-block-heading {
  font-family: var(--font-body);
  font-size: 28px;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 14px 0;
  }  

.search-form {
  display: -webkit-flex;
  display: flex;
  -webkit-flex-wrap: wrap;
  flex-wrap: wrap;
  -webkit-flex-direction: column;
  flex-direction: column;
  -webkit-justify-content: space-around;
  justify-content: space-around;
  width: 100%;
  position: relative;
  margin: 0;
  padding: 1em 0;
  z-index: 90;
  }
  
.search-form .search-query {
  flex: 2;
  margin: 0 0 18px 0;
  }
  
.search-form-button {
  margin-bottom: 0;
  }  
 
.search-result-dashboard {
  font-family: AvenirLTStd-Medium, Sans-Serif;
  display:flex;
  flex-direction: column;
  align-items:center;
  margin: 0 0 18px 0;
} 

.search-result-count {
  margin: 0 0 18px 0;
}
  
.search-form-filter {
  display:flex;
  align-items:center;
}

.search-filter-label {
  text-align:center;
}

.search-filter-select {
  -moz-appearance: none;
  -webkit-appearance: none;
  appearance: none;
  margin: 0 0 18px 0;
  padding: 6px 36px 6px 9px;
  background-image: url('data:image/svg+xml;charset=US-ASCII,%3Csvg%20xmlns%3D%22http%3A%2F%2Fwww.w3.org%2F2000%2Fsvg%22%20width%3D%22292.4%22%20height%3D%22292.4%22%3E%3Cpath%20fill%3D%22%23000000%22%20d%3D%22M287%2069.4a17.6%2017.6%200%200%200-13-5.4H18.4c-5%200-9.3%201.8-12.9%205.4A17.6%2017.6%200%200%200%200%2082.2c0%205%201.8%209.3%205.4%2012.9l128%20127.9c3.6%203.6%207.8%205.4%2012.8%205.4s9.2-1.8%2012.8-5.4L287%2095c3.5-3.5%205.4-7.8%205.4-12.8%200-5-1.9-9.2-5.5-12.8z%22%2F%3E%3C%2Fsvg%3E');
  background-repeat: no-repeat, repeat;
  background-position: right 9px top 50%;
  background-size: 9px auto;
}
   
.ui-front.comiseo-daterangepicker-mask {
  opacity: 0.75;
  filter: alpha(opacity=0.75);
  }
  
.comiseo-daterangepicker-triggerbutton.ui-button {
  max-height: none !important;
  flex: 2;
  border-radius: 4px;
  margin-bottom: 1em;
  margin-right: 0 !important;
  text-transform: none;
  background-color: white;
  }
  
.ui-button-icon.ui-icon.ui-icon-triangle-1-s {
  position: absolute;
  right: 4px;
  top: 12px;
  }

@media screen and (min-width: 768px) {
  
  .form-field-group {
  flex-direction: row;
  justify-content: space-between;
  }

  .search-form {
  -webkit-flex-wrap: nowrap;
  flex-wrap: nowrap;
  -webkit-flex-direction: row;
  flex-direction: row;
  -webkit-justify-content: space-between;
  justify-content: space-between;
  margin: 0 auto;
  max-width: 60%;
  }

  .search-form .search-query {
  margin: 0 0 0 0;
  }
  
  .search-filter-select {
  margin: 0 0 0 18px;
  }
  
  .comiseo-daterangepicker-triggerbutton.ui-button {
  margin-bottom: 0;
  margin-left: 18px !important;
  }

  }
  
@media screen and (min-width: 1024px) {
  .search-result-dashboard {
	flex-direction: row; 
  }
  
  .search-result-count {
	flex: 1 0 0;
	margin: 0 24px 0 0;
  }
  
  .search-form-filter {
	flex: 2 0 0;
  }
  
  .search-form-button {
	margin: 0 0 0 18px;
  }
  }

.shortcuts {
  display: none; }
  
.neighborhood-rank {
  font-family: "Tungsten A", "Tungsten B", Sans-Serif;
  font-size: 24px;
  text-align: center;
  line-height: 2em;
  color: #ffffff;
  background-color: #b23c25;
  display: inline-block;
  height: 48px;
  width: 48px;
  margin: 0 0 12px 0;
  border-radius: 24px;
}
  
.section-block { 
  margin: 36px 0; } 

.section-block-heading {
  text-align: center;
  margin: 0 0 12px 0;
}

.section-block-note {
  font-family: var(--font-body);
  font-size: 12px; 
  margin: 12px 0 0 0; 
}

.section-block-items {
  display: flex;
  flex-wrap: wrap;
  align-items: center;
  justify-content: space-around; }

.section-block-item {
  font-family: var(--font-body);
  font-size: 16px; 
  text-align: center; 
  margin: 1em; }

.stat-item {
  text-align: center; 
  flex: 1 0 50%; }

.stat-label {
  font-family: var(--font-body);
  text-transform: uppercase;
  font-size: 14px; }

.stat-value {
  font-family: "Tungsten A", "Tungsten B", Sans-Serif;
  font-size: 44px;
  color: #b23c25;
  display: block; }

.restaurant-item {
  text-align: center;
  flex: 1 0 50%; }

.restaurant-cuisine {
  font-family: var(--font-body);
  font-size: 16px;
  letter-spacing: 1px;
  display: block;
  margin-bottom: 12px; }

.restaurant-name {
  font-size: 24px;
  margin: 12px 0;
  padding: 0; }

.restaurant-cost {
  font-family: "Tungsten A", "Tungsten B", Sans-Serif;
  font-size: 16px;
  letter-spacing: 2px;
  display: block;
  margin-top: 12px; }

.table-block {
  overflow-x: scroll;
  -webkit-overflow-scrolling: touch;
  margin: 20px 0; }

.table-block table {
  margin: 0;
  overflow-y: scroll; }

.table-block table thead {
  background-color: black;
  color: white; }

.table-block table thead th {
  font-family: var(--font-body);
  text-transform: uppercase;
  font-size: 12px;
  line-height: 1.236;
  padding: 3px 12px; }

.table-block table tbody tr {
  background-color: white;
  color: black; }

.table-block table tbody tr td {
  font-family: "Tungsten A", "Tungsten B", Sans-Serif;
  font-size: 20px;
  padding: 3px 12px;
  text-align: right;
  letter-spacing: 1px; }

.table-block table tbody tr td:first-child {
  background-color: skyblue;
  color: white;
  white-space: nowrap;
  padding: 0;
  text-align: left; }

.table-block table tbody tr td:first-child a {
  display: block;
  color: white;
  padding: 3px 12px; 
  }

.table-block table tbody tr td:first-child a:hover {
  background-color: black;
  color: skyblue; 
  }

.table-block table tbody tr:nth-child(even) {
  background-color: #efefef; 
  }

.article-block {
  display: block;
  margin-top: 36px;
  margin-bottom: 36px;
  }

.single-sponsored_content .article-block {
  max-width: 756px;
  }

.single .article-block {
  max-width: 1080px;
  } 

.page-template-neighborhoods .article-block,
.tax-neighborhood .article-block {
  max-width: 1280px;
  } 

.without-sidebar {
  max-width: 756px;
  margin: 36px auto;
  }

@media screen and (min-width: 1080px) {

  .article-content {
  display: grid;
  grid-template-columns: minmax(0,1fr) 300px;
  grid-gap: 60px; 
  }
	  
  .single-sponsored_content .article-content,
  .without-sidebar .article-content {
  display: block;
  }

  .listing-content {
  display: grid;
  grid-template-columns: 1fr 300px;
  grid-gap: 32px; }

  .shortcuts {
  display: block;
  font-family: var(--font-body);
  font-size: 16px;
  padding-left: 0 !important;
  counter-reset: li;
  }
  
  .shortcuts > li {
  position: relative;
  list-style-type: none;
  margin: 0 0 4px 0 !important;
  padding: 0; 
  }
  
  .shortcuts > li:before {
  content: counter(li) " / ";
  counter-increment: li; 
  }

  .stat-item,
  .restaurant-item {
  flex: 1; 
  }
  
}

.container {
  max-width: 1440px;
  margin-left: auto;
  margin-right: auto;
  padding-left: 18px;
  padding-right: 18px; }

@media all and (min-width: 1440px) {
  .container {
  padding-left: 0;
  padding-right: 0; }
}      

.archive-block {
  display: block;
}

/* Sticky tower ads within each archive-block (CSS sticky on the sidebar column).
   Sticky must be on .sidebar with align-self:start — sticky on an inner child whose
   parent is only as tall as the ad has zero travel distance. */
@media screen and (min-width: 768px) {
  .archive-block .sidebar {
    position: sticky;
    top: calc(var(--wp-admin--admin-bar--height, 0px) + 72px);
    align-self: start;
    width: 300px;
    z-index: 2;
  }

  .archive-block .sidebar-ad {
    position: static;
  }
}


.magazine-archive-block {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 24px 36px; }
  
.archive-block-header {
  display: block;
  }
   
.archive-block-heading {
  font-family: var(--font-body);
  font-size: 24px;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
  margin: 0;
}

.archive-block-description {
  font-family: AvenirLTStd-Medium, Sans-Serif;
  text-align: left;
  margin: 24px 0 18px 0;
}
  
.archive-item {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap; 
  align-items: flex-start;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #efefef; }
  
.archive-item:first-of-type {
  border-top: 1px solid #efefef;
  padding-top: 18px; }  
  
.archive-item:last-child {
  margin-bottom: 0; }  
  
.archive-item-thumbnail {
  flex: 0 0 120px;
  order: 1;
  margin: 0 0 0 18px;
  padding: 0;
  aspect-ratio: 3 / 2;
  overflow: hidden;
}

.archive-item-thumbnail img {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}

.archive-item-header {
  flex: 2 0 0;
  padding: 0;
}

.archive-item-title {
  font-family: var(--font-heading);
  font-size: 24px;
  flex: 2;
  line-height: 1.382;
  margin: 0 0 .5em 0;
}

.archive-item-header p,
.archive-item-deck {
  display: none;
}

@media screen and (min-width: 480px) {

  .archive-item-header p,
  .archive-item-deck {
    display: block;
    font-family: var(--font-body);
    font-size: 18px;
    line-height: 1.382;
    margin: .5em 0 1em 0;
  }

  .archive-item-thumbnail {
    flex: 1 0 0;
    aspect-ratio: 3 / 2;
    overflow: hidden;
  }

  .archive-item-thumbnail img {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }

}

@media screen and (min-width: 768px) {

  .archive-block {
  display: grid;
  grid-template-columns: 1fr 300px;
  gap: 0px 36px;
  }

  .archive-block-header {
  grid-column: 1/-1;
  }

  .archive-block-heading { 
  text-align: left;
  }

  }

@media screen and (min-width: 1024px) {
  
  .magazine-archive-block {
  grid-template-columns: repeat(4, 1fr);
  }
	
  .archive-item-thumbnail {
  order: 0;
  margin: 0 24px 0 0;
  }
  
  .archive-item-header {
  flex: 2 0 0;
  }
  
  .archive-item-title {
  font-size: 28px;
  }
	
  }
  
.byline-block {
  max-width: 960px;
  margin-top: 60px;
  }

.byline-photo {
  display: block;
  height: 168px;
  width: 168px;
  margin: 0 auto 18px auto;
  -webkit-clip-path: circle(84px at 84px 84px);
  clip-path: circle(84px at 84px 84px);
  }

.byline-name {
  font-family: var(--font-body);
  font-size: 24px;
  letter-spacing: 3px;
  text-transform: uppercase;
  text-align: center;
  margin: 0 0 1em 0;
  }

.byline-title {
  font-family: 'Tungsten A', 'Tungsten B', sans-serif;
  font-size: 20px;
  letter-spacing: 1px;
  text-transform: uppercase;
  text-align: center;
  line-height: 1.382;
  margin: 0;
  padding: 0;
  }

.byline-bio {
  font-family: var(--font-body);
  font-size: 16px;
  letter-spacing: 1px;
  margin-top: 18px;
  margin-bottom: 18px;
  line-height: 1.618;
}

/* Byline archive profile extras */
.byline-content {
  text-align: center;
}
.byline-photo img,
.byline-photo-image {
  display: block;
  width: 168px;
  height: 168px;
  object-fit: cover;
  margin: 0 auto;
  border-radius: 50%;
}
.byline-social-links {
  display: flex;
  flex-wrap: wrap;
  justify-content: center;
  gap: 0.75rem 1.25rem;
  margin: 0.75rem 0 0.5rem;
}
.byline-social-link {
  font-family: var(--font-body);
  font-size: 0.9rem;
  font-weight: 600;
  color: var(--color-bg-main, #689776);
  text-decoration: none;
}
.byline-social-link:hover {
  color: #111;
}
.byline-hometown {
  font-family: var(--font-body);
  font-size: 0.95rem;
  color: #555;
  margin: 0.5rem 0 0;
}


.alignwide {
  margin-left: 0;
  margin-right: 0;
  }

.alignfull {
  margin-left: calc( -100vw / 2 + 100% / 2 );
  margin-right: calc( -100vw / 2 + 100% / 2 );
  padding-left: 0;
  padding-right: 0;
  }
  
.alignfull .article-figure-caption,
.alignfull .package-figure-caption {
  padding-left: 18px;
  padding-right: 18px;
  }

.alignfull .article-figure-caption {
  text-align: right;
  }
  
@media screen and (min-width: 1116px) {

  .alignwide {
  margin-left: calc( -1080px / 2 + 100% / 2 );
  margin-right: calc( -1080px / 2 + 100% / 2 ); 
  }
  
  .article-body .alignwide {
  margin-left: 0;
  margin-right: 0;
  }

  /* Featured image caption: no overlay; inherit figure figcaption styles, stay right-aligned */
  .alignfull .article-figure-caption {
  position: static;
  bottom: auto;
  right: auto;
  background-color: transparent;
  text-shadow: none;
  font-family: var(--font-body);
  font-size: 14px;
  color: #888888;
  letter-spacing: 1px;
  border-bottom: 1px solid #efefef;
  margin: 0;
  max-width: none;
  width: 100%;
  padding-left: 18px;
  padding-right: 18px;
  text-align: right;
  }

  .alignfull .package-figure-caption {
  position: absolute;
  bottom: 0;
  right: 0;
  background-color: rgba(0, 0, 0, 0.84);
  text-shadow: 1px 1px 2px black;
  color: white;
  border-bottom: none;
  margin: 0;
  max-width: 420px;
  padding-left: 18px;
  padding-right: 18px;
  }
}
  
	
@media screen and (min-width: 1440px) {
	
  .alignfull {
  margin-left: calc( -1440px / 2 + 100% / 2 );
  margin-right: calc( -1440px / 2 + 100% / 2 );
  }
}
  
.english-on, .spanish-on {
  display: block;
  }

.english-off, .spanish-off {
  display: none;
  }

.language-preference {
  display: flex;
  align-items: center;
  justify-content: space-between;
  width: 200px;
  font-family: var(--font-body);
  font-size: 16px;
  letter-spacing: 1px;
  margin: 18px 0;
  }

.language-en {
  color: #333;
  }

.language-es {
  color: #00a1ff;
  }

.language-toggle {
  position: relative;
  width: 50px;
  height: 25px !important;
  }

.language-toggle:before {
  content: '';
  position: absolute;
  width: 50px;
  height: 25px;
  background: #333;
  border-radius: 25px;
  }

.language-toggle:checked:before {
  background: #00a1ff;
  }

.language-toggle:after {
  content: '';
  position: absolute;
  left: 0px;
  width: 25px;
  height: 25px;
  background: #fff;
  border-radius: 25px;
  transition: 0.25s;
  border: 2px solid #333;
  box-sizing: border-box;
  }

.language-toggle:checked:after {
  left: 25px;
  border: 2px solid #00a1ff;
  }

.package-nav {
  background-color: #efefef;
  color: #333333;
  padding: 9px 18px;
  margin: 18px 0;
  }
  
body.admin-bar .package-nav {
  top: 98px !important;
}

.package-nav-trigger,
.package-nav-title {
  font-family: var(--font-body);
  font-size: 20px;
  font-weight: normal;
  vertical-align: bottom;
  display: inline-block;
  }
  
.package-nav-trigger {
  width: 18px;
  }  

.package-nav-trigger:before {
  content: '+';
  padding: 0 0 0 1px;
  }

.package-nav-open .package-nav-trigger:before {
  content: '\2013';
  padding: 0 2px;
  }
  
.package-nav ul {
  display: none;
  font-family: var(--font-body);
  font-weight: normal;
  font-size: 18px;  
  text-transform: none;
  list-style-type: square;
  padding: 0px;
  margin: 0 0 0 22px;
  }

.package-nav-open.fixto-fixed {
  position: absolute;
  z-index: 100;
  top: 0;
  right: 0;
  bottom: 0;
  left: 0;
  margin: 0;
  overflow-y: scroll;
}

.package-nav-open ul {
  display: block;
  }
  
.package-nav ul li {
  padding: .5em 0;
  margin: 0;
  }

.package-nav.fixto-fixed {
  top: 0;
  margin: 0;
  -webkit-transition: .5s ease-in;
  -moz-transition: .5s ease-in;
  -o-transition: .5s ease-in;
  transition: .5s ease-in;
  z-index: 90; 
  }

@media screen and (min-width: 1116px) {
  
  body.admin-bar .package-nav {
	top: 32px !important;
  }
}

#newsletters {
  font-family: sans-serif;
}
#newsletters img {
  display: none;
  max-width: 100%;
  width: 100%;
}
#newsletters .full-width img {
  display: block;
}
@media all and (min-width: 640px) {
  #newsletters {
  display: grid;
  grid-template-columns: repeat(2, 1fr);
  gap: 20px;
  min-width: 0;
  }
  #newsletters .newsletter-choice,
  #newsletters .newsletter-optin {
  margin-bottom: 0;
  }
  #newsletters .full-width {
  grid-column-start: 1;
  grid-column-end: -1;
  }
  #newsletters img {
  display: block;
  }
}
@media all and (min-width: 960px) {
  #newsletters {
  grid-template-columns: repeat(3, 1fr);
  }
}
.newsletter-choice {
  position: relative;
  margin-bottom: 40px;
}
.newsletter-choice label {
  display: block;
  position: relative;
  font-family: AvenirLTStd-Black, Arial, sans-serif;
  font-weight: 500;
  font-style: normal;
  font-size: 20px;
  text-transform: uppercase;
  line-height: 1.4;
  color: #000;
  background-color: transparent;
  margin: 9px 0 3px 0;
}
.newsletter-choice input[type="checkbox"] {
  position: absolute;
  opacity: 0;
  cursor: pointer;
  height: 0;
  width: 0;
}
.newsletter-choice .checkmark {
  box-sizing: content-box;
  position: absolute;
  top: 0;
  right: 0;
  height: 25px;
  width: 25px;
  background-color: #eee;
  border-radius: 4px;
}
.newsletter-choice label:hover input ~ .checkmark {
  background-color: #ccc;
}
.newsletter-choice label input:checked ~ .checkmark {
  background-color: #00b9f2;
}
.newsletter-choice .checkmark:after {
  content: "";
  position: absolute;
  display: none;
}
.newsletter-choice label input:checked ~ .checkmark:after {
  display: block;
}
.newsletter-choice label .checkmark:after {
  left: 9px;
  top: 5px;
  width: 5px;
  height: 10px;
  border: solid #fff;
  border-width: 0 3px 3px 0;
  -webkit-transform: rotate(45deg);
  transform: rotate(45deg);
}
.newsletter-frequency {
  display: block;
  font-size: 16px;
  font-style: italic;
  font-weight: 400;
}
.newsletter-description {
  margin: 12px 0;
  font-size: 18px;
  font-style: normal;
  font-weight: 500;
}
.newsletter-optin {
  display: flex;
  flex-direction: column;
  margin-bottom: 40px;
}
@media all and (min-width: 480px) {
  .newsletter-optin {
  flex-direction: row;
  }
}
.newsletter-optin input[type="email"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  box-sizing: border-box;
  max-width: 100%;
  font-family: sans-serif;
  font-weight: 400;
  font-style: normal;
  font-size: 15px;
  line-height: 1;
  color: #555;
  border: 1px solid #ccc;
  background-color: #fff;
  margin: 0;
  padding: 6px 9px;
}
@media all and (min-width: 480px) {
  .newsletter-optin input[type="email"] {
  flex: 75%;
  }
}
.newsletter-optin input[type="submit"] {
  -webkit-appearance: none;
  -moz-appearance: none;
  appearance: none;
  font-family: system-ui;
  display: inline-block;
  color: #fff;
  text-align: center;
  text-decoration: none;
  white-space: nowrap;
  margin: 16px 0 0;
  padding: 6px 9px;
  border: 1px solid #00b9f2;
  background-color: #00b9f2;
}
.newsletter-optin input[type="submit"]:disabled,
.newsletter-optin input[type="submit"] .disabled {
  pointer-events: none;
  cursor: default;
  opacity: 0.25;
}
@media all and (min-width: 480px) {
  .newsletter-optin input[type="submit"] {
  flex: 25%;
  margin: 0 0 0 16px;
  }
}
  
  
  
/* === terrain-aspect-locks (ported from fiftytwoeighty) === */
/* Opening / article heroes: lock ratio on the IMG so figcaption stays outside the crop box */
.article-figure.alignfull > img.hero-image,
.article-figure > img.hero-image,
img.hero-image {
  aspect-ratio: 3 / 2;
  object-fit: cover;
  width: 100%;
  height: auto;
  display: block;
}

/* single-wide featured image: 16:9 cover */
.post-template-single-wide .article-figure > img.hero-image,
.single-wide .article-figure > img.hero-image,
body.single-wide .article-figure > img.hero-image,
body.post-template-single-wide .article-figure > img.hero-image,
.post-template-single-wide img.hero-image,
.single-wide img.hero-image {
  aspect-ratio: 16 / 9;
  object-fit: cover;
  width: 100%;
  height: auto;
  display: block;
}

/* Category story thumbnails: 3:2 cover from ≥480px; mobile may stay square */
.category-story {
  display: flex;
  flex-direction: row;
  flex-wrap: nowrap;
  align-items: flex-start;
  margin-bottom: 18px;
  padding-bottom: 18px;
  border-bottom: 1px solid #efefef;
}

.category-story:last-child {
  margin-bottom: 0;
  padding-bottom: 0;
  border-bottom: none;
}

.category-story-thumbnail {
  flex: 0 0 120px;
  order: 1;
  margin: 0 0 0 18px;
  padding: 0;
  overflow: hidden;
}

.category-story-thumbnail img,
.category-story-image {
  object-fit: cover;
  width: 120px;
  height: 120px;
  display: block;
}

.category-story-header {
  text-align: left;
  flex: 2 0 0;
  padding: 0;
}

.category-story-title {
  font-family: var(--font-heading);
  font-size: 20px;
  word-spacing: 2px;
  margin: 0 0 .618em 0;
}

@media screen and (min-width: 480px) and (max-width: 1023px) {
  /* Stay on entry-style thumbs through tablet */
  .category-story-thumbnail {
    flex: 0 0 120px;
  }

  .category-story-thumbnail img,
  .category-story-image {
    object-fit: cover;
    width: 120px;
    height: 120px;
  }
}

/* Mobile/tablet: match category-entry row layout */
@media screen and (max-width: 1023px) {
  .category-story {
    display: flex;
    flex-direction: row;
    flex-wrap: nowrap;
    align-items: flex-start;
  }

  .category-story-thumbnail {
    flex: 0 0 120px;
    order: 1;
    margin: 0 0 0 18px;
    padding: 0;
    aspect-ratio: auto;
    overflow: hidden;
  }

  .category-story-thumbnail img,
  .category-story-image {
    object-fit: cover;
    width: 120px;
    height: 120px;
  }

  .category-story-header {
    text-align: left;
    flex: 2 0 0;
    padding: 0;
  }

  .category-story-title {
    font-size: 20px;
    margin: 0 0 .618em 0;
  }
}

@media screen and (min-width: 1024px) {
  .category-story {
    display: block;
  }

  .category-story:last-child {
    border-bottom: none;
  }

  .category-story-thumbnail {
    margin: 0;
    flex: none;
    order: 0;
    aspect-ratio: 3 / 2;
    overflow: hidden;
  }

  .category-story-thumbnail img,
  .category-story-image {
    object-fit: cover;
    width: 100%;
    height: 100%;
  }

  .category-story-title {
    font-size: 24px;
    margin: .5em 0;
  }
}

/* Keep guide brand mark small; do not inherit general cover rules */
.guide-cover .guide-logo,
.guide-heading .guide-logo,
img.guide-logo {
  width: auto !important;
  height: 16px;
  max-height: 16px;
  object-fit: contain !important;
}

@media screen and (min-width: 1024px) {
  .guide-cover .guide-logo,
  .guide-heading .guide-logo,
  img.guide-logo {
    height: 24px;
    max-height: 24px;
  }
}

/* Ensure lede 16:9 remains (Scott's header overlay tweaks untouched) */
.lede-item-image,
.lede-item .lede-item-image {
  aspect-ratio: 16 / 9;
  overflow: hidden;
}

.lede-item-image img,
.lede-item-thumbnail-image {
  object-fit: cover;
  width: 100%;
  height: 100%;
  display: block;
}

/* -------------------------------------------------------------------------
   Theme Switcha / Avada leakage: Fusion often styles `.container a` green.
   Keep homepage / article titles black; don't nuke intentional brand links.
   ------------------------------------------------------------------------- */
body .container h1 a,
body .container h2 a,
body .container h3 a,
body .container h4 a,
body .container h5 a,
body .container h6 a,
body .container .lede-item-title a,
body .container .article-item-title a,
body .container .entry-title a,
body .container .category-block-heading a,
body .container .category-entry-title a,
body .container .post-title a {
	color: #111111 !important;
}

body .container h1 a:hover,
body .container h2 a:hover,
body .container h3 a:hover,
body .container h4 a:hover,
body .container .lede-item-title a:hover,
body .container .article-item-title a:hover,
body .container .entry-title a:hover,
body .container .category-block-heading a:hover,
body .container .category-entry-title a:hover,
body .container .post-title a:hover {
	color: #689776 !important;
}

/* ADS PRO leaderboards — BSA floats items left + forces
   .bsaProItem:first-child { margin-left: 0 !important }, so we
   out-specify that and shrink-wrap/center the unit. */
.site-header-ad,
.site-footer-ad,
.ad-slot-header,
.ad-slot-footer,
.ad-slot-in-page.temp-leaderboard-internal,
.temp-leaderboard-headfoot {
	display: flex;
	justify-content: center;
	align-items: center;
	width: 100%;
	text-align: center;
}
.site-header-ad .apMainContainer,
.site-footer-ad .apMainContainer,
.ad-slot-in-page .apMainContainer,
.temp-leaderboard-internal .apMainContainer,
.temp-leaderboard-headfoot .apMainContainer,
.site-header-ad .apMainCenter,
.site-footer-ad .apMainCenter,
.ad-slot-in-page .apMainCenter {
	display: flex !important;
	justify-content: center !important;
	align-items: center !important;
	width: 100% !important;
	float: none !important;
	text-align: center !important;
}
.site-header-ad .apPluginContainer,
.site-footer-ad .apPluginContainer,
.ad-slot-in-page .apPluginContainer,
.temp-leaderboard-internal .apPluginContainer,
.temp-leaderboard-headfoot .apPluginContainer {
	float: none !important;
	margin-left: auto !important;
	margin-right: auto !important;
	max-width: 100%;
}
.site-header-ad .bsa-block-970--90,
.site-footer-ad .bsa-block-970--90,
.temp-leaderboard-headfoot .bsa-block-970--90 {
	max-width: 970px !important;
	width: 100% !important;
}
.ad-slot-in-page .bsa-block-728--90,
.temp-leaderboard-internal .bsa-block-728--90 {
	max-width: 728px !important;
	width: 100% !important;
}
.site-header-ad .bsaProItems,
.site-footer-ad .bsaProItems,
.ad-slot-in-page .bsaProItems,
.temp-leaderboard-internal .bsaProItems,
.temp-leaderboard-headfoot .bsaProItems {
	display: flex !important;
	justify-content: center !important;
	float: none !important;
	width: 100% !important;
}
/* Must beat: .apPluginContainer .bsaProItem:first-child { margin-left: 0 !important } */
.site-header-ad .apPluginContainer .bsaProItem,
.site-header-ad .apPluginContainer .bsaProItem:first-child,
.site-footer-ad .apPluginContainer .bsaProItem,
.site-footer-ad .apPluginContainer .bsaProItem:first-child,
.ad-slot-in-page .apPluginContainer .bsaProItem,
.ad-slot-in-page .apPluginContainer .bsaProItem:first-child,
.temp-leaderboard-internal .apPluginContainer .bsaProItem,
.temp-leaderboard-internal .apPluginContainer .bsaProItem:first-child,
.temp-leaderboard-headfoot .apPluginContainer .bsaProItem,
.temp-leaderboard-headfoot .apPluginContainer .bsaProItem:first-child {
	float: none !important;
	clear: none !important;
	display: block !important;
	margin-left: auto !important;
	margin-right: auto !important;
}

/* Article sidebar tower: stick within .article-content grid column */
@media screen and (min-width: 1080px) {
	.article-content > .article-ad {
		position: sticky;
		top: calc(var(--wp-admin--admin-bar--height, 0px) + 72px);
		align-self: start;
		z-index: 2;
	}
}


/* ======================================================================
   WooCommerce (classic integration)
   ====================================================================== */

.terrain-woocommerce .woocommerce-block {
  padding-top: 36px;
  padding-bottom: 60px;
}

.terrain-woocommerce .woocommerce-products-header__title,
.terrain-woocommerce .product_title {
  font-family: var(--font-display, Fraunces, Georgia, serif);
}

.terrain-woocommerce ul.products {
  display: grid;
  grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
  gap: 28px;
  margin: 0;
  padding: 0;
  list-style: none;
}

.terrain-woocommerce ul.products li.product {
  width: auto !important;
  margin: 0 !important;
  float: none !important;
}

.terrain-woocommerce ul.products li.product .woocommerce-loop-product__title {
  font-size: 1.05rem;
  margin: 0.5em 0 0.25em;
}

.terrain-woocommerce .woocommerce-breadcrumb {
  margin-bottom: 18px;
  font-size: 0.9rem;
}
