@import url("reset.css");
@import url("960.css");
@import url("typography.css");
/* dropped: prettyPhoto, nivo-slider, video-js - features removed in rebuild */
@font-face {
	font-family: 'Allura';
	font-style: normal;
	font-weight: 400;
	font-display: swap;
	src: url('fonts/allura/allura.woff2') format('woff2');
}
body { font-size: 14px; }
/*
-------------------------------------------
	BCOA - Annie St.Clair
-------------------------------------------
A)  GLOBAL
	1.  Page Wrap, Header & Logo
	2.  Navigation
	3.  Slider
	4.  Content, Intro & Sidebar
	5.  Footer
	6.  Lists

B)	BLOG STYLE
	1. Blog General
	
C)  PORTFOLIO
	1. Portfolio 
	
D)  SHORTCODES
	1.	General
	2.  Highlight Text
	3.  Drop Caps 
	4.  Table
	5.  Code
	6. 	Testimonials
	7. 	Tabs
	8. 	Accordion
	9. Notification Boxes
	
E)  Flickr
	
F)  MISC

G) Contact Form & Search Form

-------------------------------------------
*/


/*	
	A) GLOBAL
-------------------------------------------
	1. Page Wrap, Header & Logo
-------------------------------------------
*/
#page_wrap {
	margin-top:10px;
}
#header {
	min-height: 110px;
	margin-bottom:20px;
	padding-bottom:10px;
	border-bottom: 1px solid #d0d3d8;
	position:relative;
}
#logo h1 {
	margin:0;
	padding:0;
}
#logo {
	position:absolute;
	z-index:10;
	top:0;
	left:0;
	width:145px;
	height:50px;
	-webkit-background-size: cover;
	-moz-background-size: cover;
	-o-background-size: cover;
	background-size: cover;
}
#logo a {
	display:block;
	height:100%;
	width:100%;
}
/*	
	A) GLOBAL
-------------------------------------------
	2. Navigation
-------------------------------------------
*/
#nav {
	margin-top:40px;
}
.jqueryslidemenu {
	font-family: 'InterVariable', Arial, sans-serif;
	background: transparent;
	width: 100%;
}
.jqueryslidemenu ul {
	margin: 0;
	padding: 0;
	list-style-type: none;
	z-index:9999999;
	float:right;
}
/*Top level list items*/
.jqueryslidemenu ul li {
	position: relative;
	display: inline;
	float: left;
	margin-top:0 !important;
}
/*Top level menu link items style. font-size + line-height must match the
  .nav-parent button below so dropdown-parent items and standalone links
  share the same baseline in the navbar. */
/* Top-level nav items: <a> for direct links (Home, Shop), <button.nav-parent>
   for items with dropdowns. Both render identically so they share a baseline. */
.jqueryslidemenu ul li > a,
.jqueryslidemenu ul li > button.nav-parent {
	box-sizing: border-box;
	vertical-align: baseline;
	font: normal 400 14px/1.4 'InterVariable', Arial, sans-serif;
	letter-spacing: 0.02em;
	text-transform: uppercase;
	text-decoration: none;
	color: #666;
	background: transparent;
	border: 0;
	margin: 0;
	padding: 10px 10px;
	display: block;
	cursor: pointer;
	appearance: none;
	-webkit-appearance: none;
}
* html .jqueryslidemenu ul li a { /*IE6 hack to get sub menu links to behave correctly*/
	display: inline-block;
}
.jqueryslidemenu ul li a:link, .jqueryslidemenu ul li a:visited {
	color: #666;
}
.jqueryslidemenu ul li a:hover {
	background: transparent; /*tab link background during hover state*/
	color: #000;
}
.jqueryslidemenu ul li ul li:hover {
	background:#edeef1;
}
/*1st sub level menu*/
.jqueryslidemenu ul li ul {
	position: absolute;
	left: 0;
	display: block;
	visibility: hidden;
	background-color: #fff;	
	-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
	-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
	-ms-box-shadow:0px 0px 2px rgba(0, 0, 0, 0.2);
	-o-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
	box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
}
/*Sub level menu list items (undo style from Top level List Items)*/
.jqueryslidemenu ul li ul li {
	display: list-item;
	float: none;
	font-size:11px;
}
/*All subsequent sub menu levels vertical offset after 1st level sub menu */
.jqueryslidemenu ul li ul li ul {
	top: 0;
}
/* Sub level menu links style */
.jqueryslidemenu ul li ul li a {
	width: 160px; /*width of sub menus*/
	padding: 5px 15px 5px 15px;
	margin: 0;
}
.jqueryslidemenuz ul li ul li a:hover { /*sub menus hover style*/
	background: #eff9ff;
	color: black;
}
/* ######### CSS classes applied to down and right arrow images  ######### */

.downarrowclass {
	position: absolute;
	top: 12px;
	right: 7px;
}
.rightarrowclass {
	position: absolute;
	top: 6px;
	right: 5px;
}
/*	
	A) GLOBAL
-------------------------------------------
	3. Slider 
-------------------------------------------
*/
#piecemaker_wrap {
	margin-top:-25px;
	margin-bottom:30px;
	padding-bottom:10px;
	border-bottom: 1px solid #d0d3d8;
}
/*============================*/
/*=== Custom Nivo Slider ===*/
/*============================*/
#slider_wrap {
	height:420px;
	position:relative;
	margin-bottom:30px;
	padding-bottom:30px;
	border-bottom: 1px solid #d0d3d8;
}
#slider {
	position:relative;
	width:940px;
	height:420px;
	background:url('../img/zoom.png') no-repeat 50% 50%;
	left:0px;
	top:-10px !important;
}
#slider ul {
	list-style:none;
	margin:0;
	padding:0;
}
#slider img {
	position:absolute;
	left:0px;
	top:0px;
	display:none;
}
#slider a {
	border:0;
	display:block;
}
.nivo-directionNav a {
	display:block;
	width:34px;
	height:70px;
	text-indent:-9999px;
	border:0;
}
a.nivo-nextNav {
	background:url('../img/right_arrow.png') no-repeat;
	right:0px;
}
a.nivo-nextNav:hover {
	background:url('../img/right_arrow_hover.png') no-repeat;
	right:0px;
}
a.nivo-prevNav {
	background:url('../img/left_arrow.png') no-repeat;
	left:0px;
}
a.nivo-prevNav:hover {
	background:url('../img/left_arrow_hover.png') no-repeat;
	left:0px;
}
.nivo-caption {
	text-shadow:none;
	background-color: rgba(255, 255, 255, 0.8);
	color:#000;
}
.nivo-caption a {
	text-decoration:underline;
}
/*	
	A) GLOBAL
-------------------------------------------
	4. Content, Intro & Sidebar 
-------------------------------------------
*/
#content {
	padding-bottom:30px;
	margin-bottom:0;
}
#content a { text-decoration: underline; }
#content a.button,
#content a.doc-card,
#content a.club-card-linked,
#content a.honor-permalink,
#content a.admin-stat,
#content a.contact-email,
#content a.panel-item { text-decoration: none; }
#content a.panel-item .panel-label { text-decoration: underline; }
#content a.admin-stat .admin-stat-kicker { text-decoration: underline; }
#content > :last-child { margin-bottom: 0; }
#intro {
	padding-top: 14px;
	padding-bottom: 16px;
	margin-bottom: 30px;
	border-bottom: 1px solid #d0d3d8;
}
#intro h2 {
	margin:0;
}
#intro > :last-child { margin-bottom: 0; }

#main {
	float:left;
}
#aside {
	float:right;
	width:280px;
}
ul.sidebar-comment a, ul.sidebar-post a, ul.sidebar-categories a, ul.sidebar-archive a {
	color:#ABABA4;
}
ul.sidebar-comment {
	list-style:none;
	margin:0;
}
ul.sidebar-comment li {
	margin-bottom:10px;
	display:block;
}
ul.sidebar-post {
	list-style:inside;
	margin:0;
}
ul.sidebar-post li {
	margin-bottom:10px;
}
ul.sidebar-categories {
	list-style:inside;
	margin:0;
}
ul.sidebar-categories li {
	margin-bottom:10px;
}
ul.sidebar-archive {
	list-style:inside;
	margin:0;
}
ul.sidebar-archive li {
	margin-bottom:10px;
}
.no-padding {
	padding-bottom:0px !important;
}
/*	
	A) GLOBAL
-------------------------------------------
	5. Footer
-------------------------------------------
*/
#footer {
	display: block;
	float: none;
	clear: both;
	margin: 30px 10px;
	border-top: 1px solid #d0d3d8;
	padding-top: 16px;
	font-size: 12px;
	color: #6b7c93;
}
.footer-row {
	display: flex;
	flex-wrap: wrap;
	align-items: center;
	gap: 16px 22px;
}
.footer-copy {
	margin: 0;
	flex: 1 1 280px;
	min-width: 0;
}
.footer-copy p { margin: 0; }
.footer-copy a { color: #1f5132; }
.fb-follow,
.footer-yt {
	display: inline-flex;
	align-items: center;
	gap: 6px;
	color: #1f5132;
	text-decoration: none;
	font-weight: 600;
	white-space: nowrap;
}
.fb-follow:hover,
.footer-yt:hover { text-decoration: underline; }
.fb-follow img,
.footer-yt svg { display: block; }
.footer-top { margin: 0; }
.footer-top a { color: #1f5132; }
.footer-credit {
	margin: 2px 0 0;
}
.bcoa-mailing-address {
	margin: 16px 0 0;
	padding: 10px 14px;
	background: #edeef1;
	border-left: 3px solid #1f5132;
	border-radius: 0 3px 3px 0;
	font-size: 13px;
	display: inline-block;
}
/*	
	A) GLOBAL
-------------------------------------------
	6. Lists
-------------------------------------------
*/
ul li, ol li {
	margin-top:10px;
}
ul, ol {
	display:block;
	margin:0;
	list-style-position:inside;
}
ul.check, ul.uncheck {
	display:block;
	list-style:none;
	margin:0;
}
ul.check li {
	background-attachment: scroll;
	background-image: url('../img/icons/check.png');
	background-repeat: no-repeat;
	background-position: left center;
	padding-left:30px;
	margin-top:10px;
}
ul.uncheck li {
	background-attachment: scroll;
	background-image: url('../img/icons/uncheck.png');
	background-repeat: no-repeat;
	background-position: left center;
	padding-left:30px;
	margin-top:10px;
}
/* 
 B) Blog
-------------------------------------------
 1. General
-------------------------------------------
*/
.older-posts { 
 border-bottom-left-radius: 3px;
 border-bottom-right-radius: 3px;
 border-top-left-radius: 3px;
 border-top-right-radius: 3px;
}
.older-posts a {
 color:#ABABA4;
}
.entry-meta {
 margin-top:10px;
 font-size:11px;
}
.comment {
 padding-bottom:30px;
 margin-bottom:30px;
 border-bottom: 1px solid #d0d3d8;
}
.blog-author {
 margin-top:30px;
 margin-bottom:30px;
 padding-bottom:30px;
 border-bottom: 1px solid #d0d3d8;
}
.blog-comments {
}
.comments-count {
 margin-bottom:30px;
}
.comment-info {
 text-align:left;
}
.comment-reply {
 text-align:right;
 font-size:11px;
}
.comment-author {
 margin-right:2px;
 font-size:11px;
}
.comment-time {
 font-size:11px;
}
.entry-meta a {
 cursor:pointer;
}
.comment-links {
 padding-right:15px;
}
.comment-links-title {
 margin-right:2px;
 background-image: url('../img/icons/chat_2.png');
 background-repeat: no-repeat;
 background-position: left center;
 padding-left:17px;
}
.cat-links {
 padding-right:15px;
}
.cat-links-title {
 margin-right:2px;
 background-image: url('../img/icons/document_1.png');
 background-repeat: no-repeat;
 background-position: left center;
 padding-left:17px;
}
.tag-links {
 padding-right:15px;
}
.tag-links-title {
 margin-right:2px;
 background-image: url('../img/icons/tag.png');
 background-repeat: no-repeat;
 background-position: left center;
 padding-left:17px;
}
.post-date {
 background-attachment: scroll;
 background-image: url('../img/icons/clock.png');
 background-repeat: no-repeat;
 background-position: left center;
 padding-left:17px;
 margin-right:13px;
}
a.post-date, .tag-links a, .cat-links a, .comment-links a, .comment-time a {
 color:#ABABA4;
}
/*	
	C) Portfolio
-------------------------------------------
	1. General
-------------------------------------------
*/
.portfolio {
	display:block;
}
ul.filter_portfolio {
	list-style:none;
	display:block;
	margin-bottom:30px;
}
ul.filter_portfolio li {
	margin:0;
	margin-right:15px;
	display:inline;
}
ul.filter_portfolio .pin {
	background-attachment: scroll;
	background-image: url('../img/icons/pin.png');
	background-repeat: no-repeat;
	background-position: left center;
	padding-left:24px;
}
ul.filter_portfolio li a {
	text-decoration:none;
}
ul.filter_portfolio li a:hover {
	text-decoration:none;
}
ul.portfolio {
	width: 980px;
	list-style:none;
}
ul.portfolio:after {
	content: "";
	display: block;
	height: 0;
	overflow: hidden;
	clear: both;
}
ul.portfolio li {
	margin:0;
	float:left;
	margin-right:20px;
	margin-bottom:30px;
}
ul.filter_portfolio li.active a {
	color: #666;
}
/*	
	D) Shortcodes 
-------------------------------------------
	1. General
-------------------------------------------
*/
.frame {
	padding:4px;
	background-color:#fff;
	outline:1px solid #ddd;
}
.zoom {
	display:block;
	background-image: url('../img/zoom.png');
	background-repeat: no-repeat;
	background-position: 50% 50%;
	z-index:100;
}
.shadow {
	-webkit-box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.4);
	-moz-box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.4);
	-ms-box-shadow:0px 0px 1px rgba(0, 0, 0, 0.4);
	-o-box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.4);
	box-shadow: 0px 0px 1px rgba(0, 0, 0, 0.4);
}
.left {
	float:left;
}
.right {
	float:right;
}
img.left {
	margin-right:15px;
	margin-bottom:10px;
}
img.right {
	margin-left:15px;
	margin-bottom:10px;
}
.center {
	margin-left:auto;
	margin-rigth:auto;
	text-align:center;
	margin-top:10px;
}
.fluid {
	float:left;
	width:100%;
}
.image {
	margin-right:15px;
	float:left;
}
.description {
	overflow:hidden;
}
.text_align_center {
	text-align:center;
}
.align_left {
	text-align:left;
}
.align_right {
	text-align:right;
}
/*	
	D) Shortcodes 
-------------------------------------------
	2. Highlight Text
-------------------------------------------
*/
.highlight1 {
	padding:2px 6px;
	color:#f5f5f5;
}
.highlight2 {
	padding:2px 6px;
	background-color:#000;
	color:#f5f5f5;
}
.highlight3 {
	padding:2px 6px;
	background-color:#FF6;
	color:#000;
}
.highlight4 {
	padding:2px 6px;
	background-color:#C33;
	color:#f5f5f5;
}
/*	
	D) Shortcodes 
-------------------------------------------
	3. Dropcaps
-------------------------------------------
*/
.dropcap1 {
	display:block;
	float:left;
	font-size:22px;
	line-height:25px;
	margin:3px 15px 10px 0;
	color:#000;
}
.dropcap2 {
	color:#f5f5f5;
	display:block;
	float:left;
	font-size:22px;
	line-height:40px;
	width:40px;
	height:40px;
	text-align: center;
	margin:3px 15px 10px 0;
}
/*	D) Shortcodes 
-------------------------------------------
	4. Table
-------------------------------------------
*/
table {
	margin:0;
	width:100%;
	border: 4px solid #ddd;
}
table th {
	border:1px solid #ddd;
	padding:10px 15px;
	background: #f0f0f0;
	text-align:center;
	font-family: 'InterVariable',Arial,sans-serif;
    font-style: normal;
    font-variant: normal;
    font-weight: normal;
	font-size: 20px;
    line-height: 23px;
}
.price {
	font-size: 11px;	
}
sup {
	font-size: 8px;	
}

table td {
	border:1px solid #ddd;
	padding:10px 15px;
	text-align:center;
}
table tfoot {
	background: #f0f0f0;
	text-align:center;
}
table a.button {
	font-size:16px;
	display:block;
}
/*	D) Shortcodes 
-------------------------------------------
	5. Code
-------------------------------------------
*/
code, pre {
	display:block;
	padding:0 15px;
	border:1px solid #ddd;
	background:url('../img/code_bg.png') repeat scroll 0 0 transparent;
	font-size:11px;
	line-height:19px;
	overflow:hidden;
}
/*	D) Shortcodes 
-------------------------------------------
	6. Testimonials
-------------------------------------------
*/

.testim_description {
	overflow: hidden;
	font-size:13px;
}
.testim-author {
	float:right;
}
.gray_box {
	background:#f5f5f5;
	padding:15px;
	border-bottom-left-radius: 3px;
	border-bottom-right-radius: 3px;
	border-top-left-radius: 3px;
	border-top-right-radius: 3px;
	-webkit-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
	-moz-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
	-ms-box-shadow:0px 0px 2px rgba(0, 0, 0, 0.2);
	-o-box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
	box-shadow: 0px 0px 2px rgba(0, 0, 0, 0.2);
	border:1px solid #fff;
}
/*	D) Shortcodes
-------------------------------------------
	7. Tabs
-------------------------------------------
*/
ul.tabs {
	margin: 0;
	padding: 0;
	float: left;
	list-style: none;
	height: 32px;
	border-bottom: 1px solid #ddd;
	border-left: 1px solid #ddd;
	width: 100%;
}
ul.tabs li {
	float: left;
	margin: 0;
	padding: 0;
	height: 31px;
	line-height: 31px;
	border: 1px solid #ddd;
	border-left: none;
	margin-bottom: -1px;
	overflow: hidden;
	background: #f0f0f0;
}
ul.tabs li a {
	text-decoration: none;
	color: #000;
	display: block;
	padding: 0 15px;
	border: 1px solid #fff;
	outline: none;
}
ul.tabs li a:hover {
	background: #ccc;
}
ul.tabs a:active {
	outline:none;
}
ul.tabs a.current, ul.tabs a.current:hover, ul.tabs li.current a {
	background: #ddd;
	cursor:default !important;
	color:#000 !important;
}
.panes {
	border: 1px solid #ddd;
	border-top: none;
	overflow: hidden;
	clear: both;
	float: left;
	width: 100%;
	background: #f0f0f0;
}
.panes div {
	padding: 15px;
	border:1px solid #fff;
	border-width: 1px 1px 1px 1px;
}
.panes h4 {
	font-weight:normal;
	margin:0 0 10px 0;
	font-size:16px;
	color:#000;
}
.panes p {
	margin:10px 0 0 0;
}
.panes img {
	margin-bottom:10px;
}
/*	D) Shortcodes
-------------------------------------------
	8. Accordion
-------------------------------------------
*/
#accordion {
	background:#f0f0f0;
	width: 100%;
	border:1px solid #ddd;
	display:inline-block;
}
/* accordion header */
#accordion h3 {
	background:#f0f0f0;
	margin:0;
	padding:5px 15px;
	font-size:12px;
	border:1px solid #fff;
	border-bottom:1px solid #ddd;
	cursor:pointer;
	font-family: 'InterVariable', Arial, sans-serif;
}
#accordion h3:hover {
	background-color:#ccc;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
}
/* currently active header */
#accordion h3.current {
	cursor:default;
	background-color:#ddd;
}
/* accordion pane */
#accordion .pane {
	border:1px solid #fff;
	border-width:0 1px;
	display:none;
	height:auto;
	padding:15px;
}
/* a title inside pane */
#accordion .pane h4 {
	font-weight:normal;
	margin:0 0 10px 0;
	font-size:16px;
	color:#000;
}
#accordion .pane p {
	margin:10 0 0 0;
}
.pane img {
	margin-bottom:10px;
}
/*	D) Shortcodes
-------------------------------------------
	9. Notification Boxes
-------------------------------------------
*/
.success_box {
	background:url('../img/icons/success_icon.png') no-repeat 15px center #DFF2BF;
	border:1px solid #4F8A10;
	color:#4F8A10;
}
.info_box {
	background:url('../img/icons/info_icon.png') no-repeat 15px center #BDE5F8;
	border:1px solid #00529B;
	color:#00529B;
}
.warning_box {
	background:url('../img/icons/warning_icon.png') no-repeat 15px center #FEEFB3;
	border:1px solid #9F6000;
	color:#9F6000;
}
.error_box {
	background:url('../img/icons/error_icon.png') no-repeat 15px center #FFBABA;
	border:1px solid #D8000C;
	color:#D8000C;
}
.boxes {
	margin:10px 0 0 0;
	padding:15px 15px 15px 62px;
}
/*	E) Flickr
-------------------------------------------
	1. General
-------------------------------------------
*/
.thumbs {
	margin:0;
	padding: 0;
	overflow: hidden;
}
.thumbs li {
	list-style: none;
	float: left;
	margin-right:5px;
}
.thumbs li img {
	display: block;
	width:50px;
	-webkit-transition: all 0.4s ease-in-out;
	-moz-transition: all 0.4s ease-in-out;
	-ms-transition: all 0.4s ease-in-out;
	-o-transition: all 0.4s ease-in-out;
	transition: all 0.4s ease-in-out;
}
.thumbs li img:hover {
	display: block;
	-ms-filter:"progid:DXImageTransform.Microsoft.Alpha(Opacity=70)";
	filter: alpha(opacity=70);
	opacity: .7;
}
.thumbs li a img {
	border: none;
}
ul#flickr {
	margin:0;
	padding:0;
	display:inline-block;
	width:220px;
}
ul#flickr li {
	margin-top:0;
!important
}
/*	F) Misc
-------------------------------------------
	1. General
-------------------------------------------
*/
ul.team_contact {
	list-style:none;
	margin:0;
}
ul.team_contact .phone {
	background-attachment: scroll;
	background-image: url(../img/icons/home.png);
	background-repeat: no-repeat;
	background-position: left center;
	padding-left:24px;
}
ul.team_contact .email {
	background-attachment: scroll;
	background-image: url(../img/icons/email.png);
	background-repeat: no-repeat;
	background-position: left center;
	padding-left:24px;
}
ul.team_contact .twitter {
	background-attachment: scroll;
	background-image: url(../img/icons/twitter.png);
	background-repeat: no-repeat;
	background-position: left center;
	padding-left:24px;
}
ul.team_contact li {
	margin-top:10px;
}
#video {
	margin-bottom:30px;
	padding-bottom:30px;
	border-bottom: 1px solid #d0d3d8;
}
iframe {
	margin-bottom:-6px;
	border:none;
}
/* Button -- outlined treatment. Colorthemes-green.css supplies the
   green border + text colors and the hover invert. Applies to <a class="button">
   AND <button class="button"> AND <input type="submit" class="button"> so any
   form submit looks right out of the box. */
a.button, button.button, input.button {
	cursor: pointer;
	display: inline-block;
	padding: 7px 18px;
	border-radius: 3px;
	font-size: 14px;
	font-weight: 600;
	text-decoration: none;
	font-family: inherit;
	line-height: 1.3;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}
a.button:hover, button.button:hover, input.button:hover, .fancybutton:hover {
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}

blockquote.style1 {
	margin:30px;
	font-size:13px;
	color:#000;
}
blockquote.style2 {
	margin:30px;
	padding:15px;
	color:#fff;
	font-size:13px;
}
/* Button Styles*/
.simple {
	width: 75px;
	cursor:pointer;
}
.squared {
	width: 34px;
	height: 34px;
	display:block;
	float:left;
	cursor:pointer;
}

.small_shadow {
	-webkit-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-moz-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-ms-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-o-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	box-shadow: inset 1px 1px 3px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
}
.error404 {
	margin-top:30px;
	margin-bottom:30px;
}
/*	
	G) CONTACT Form & Search Form
-------------------------------------------
	1. Contact From
-------------------------------------------
*/
textarea {
	overflow:hidden;
}
ul.cform {
	margin:0;
	list-style:none;
}
ul.cform li {
	margin-bottom:20px;
}
ul.cform li label {
	display:block;
	margin-bottom:10px;
	line-height: 36px;
	width: 65px;
	margin: 0px;
	text-indent: 10px;
	text-shadow: 1px 1px 1px #FFF;
}

input {
	width:200px;
}
/* the 200px form skin makes no sense on ticks; this is what kept forcing
   !important overrides in the profile checkbox rows */
input[type="checkbox"], input[type="radio"] {
	width: auto;
}
input.button {
	width: auto;
	cursor: pointer;
	padding: 7px 18px;
	border-radius: 3px;
	font-size: 14px;
	font-weight: 600;
	display: inline-block;
	text-decoration: none;
	transition: background .15s ease, color .15s ease, border-color .15s ease;
}

input#name:focus, input#email:focus {
	background: -webkit-gradient(linear, left top, left 10, from(#FFFFFF), color-stop(2%, #FBFBFB), to(#FFFFFF));
	background: -moz-linear-gradient(top, #FFFFFF, #FBFBFB 1px, #FFFFFF 10px);
}
textarea:focus {
	background: -webkit-gradient(linear, left top, left 75, from(#FFFFFF), color-stop(5%, #FBFBFB), to(#FFFFFF));
	background: -moz-linear-gradient(top, #FFFFFF, #FBFBFB 1px, #FFFFFF 75px);	
}

input, textarea {
	padding:8px;
	background:#ddd;
	border:1px solid transparent;
	-webkit-transition: all 0.3s ease-in-out;
	-moz-transition: all 0.3s ease-in-out;
	-ms-transition: all 0.3s ease-in-out;
	-o-transition: all 0.3s ease-in-out;
	transition: all 0.3s ease-in-out;
	resize:none;
}
.fancyinput {
	padding: 9px;
	outline: 0;
	background: #FFFFFF;
	-webkit-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-moz-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-ms-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-o-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	box-shadow: inset 1px 1px 3px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	background: -webkit-gradient(linear, left top, left 25, from(#FFFFFF), color-stop(4%, #FBFBFB), to(#FFFFFF));
	background: -moz-linear-gradient(top, #FFFFFF, #FBFBFB 1px, #FFFFFF 25px);
	font-size: 11px;
	border: 1px solid #FFF;
}
.fancyinputarea {
	padding: 9px;
	outline: 0;
	background: #FFFFFF;
	-webkit-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-moz-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-ms-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	-o-box-shadow: inset 1px 1px 2px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	box-shadow: inset 1px 1px 3px rgba(255, 255, 255, 0.2), rgba(0, 0, 0, 0.3) 0px 0px 1px;
	background: -webkit-gradient(linear, left top, left 150, from(#FFFFFF), color-stop(75%, #FBFBFB), to(#FFFFFF));
	background: -moz-linear-gradient(top, #FFFFFF, #FBFBFB 1px, #FFFFFF 150px);
	font-size: 11px;
	border: 1px solid #FFF;
}
.larger {
	padding: 8px 10px !important;
}
.valmsg {
	display:none;
}
#sendmessage {
	background:url('../img/icons/success_icon.png') no-repeat 20px center #DFF2BF;
	border:1px solid #4F8A10;
	color:#4F8A10;
	display:none;
	padding:15px 12px 15px 65px;
	margin:10px 0;
}
input[type=text]:focus, textarea:focus, input[type=password]:focus {
	outline: 0 none;
}
.search { width: 226px; 
}
/*
   BCOA overrides
   Appended to the base stylesheet, 2026-05-11.
   Three jobs: text-based logo wordmark (no logo art yet),
   replacement hero band (no Nivo slider), and a responsive
   layer over the 960 fixed grid.
*/

/* logo. Keep template's absolute position so the nav layout doesn't shift,
   but resize the box and let the image set its own dimensions. */
#logo {
	position: absolute;
	z-index: 10;
	top: 0;
	left: 0;
	background: none;
	width: auto;
	height: auto;
}
#logo a {
	display: inline-block;
}

/* hero band replaces nivo slider */
#hero {
	position: relative;
	margin-bottom: 30px;
	padding-bottom: 30px;
	border-bottom: 1px solid #d0d3d8;
}
.hero-photo {
	position: relative;
	height: 360px;
	background:
		radial-gradient(circle at 30% 40%, rgba(255,255,255,.10), transparent 60%),
		linear-gradient(135deg, #1f5132, #0d2e1c);
	border-radius: 2px;
}
.hero-photo .placeholder-tag {
	position: absolute;
	bottom: 8px;
	right: 12px;
	font-size: 11px;
	color: rgba(255,255,255,.65);
	letter-spacing: .08em;
	text-transform: uppercase;
}
.hero-photo .hero-text {
	position: absolute;
	left: 32px;
	bottom: 32px;
	right: 32px;
	color: #fff;
}
.hero-photo .hero-text h2 {
	color: #fff;
	font-size: 30px;
	margin: 0 0 8px;
}
.hero-photo .hero-text p {
	color: rgba(255,255,255,.92);
	margin: 0 0 14px;
	max-width: 540px;
	font-size: 15px;
}
.hero-photo .hero-text a.button {
	margin-right: 8px;
}

/* color showcase row colored backgrounds, until real photos are in */
.coat-card {
	border-radius: 2px;
}
.coat-card .swatch {
	display: block;
	height: 130px;
	border-radius: 2px;
	margin-bottom: 8px;
}
.coat-card .swatch.red    { background: linear-gradient(160deg, #a13d24, #71281a); }
.coat-card .swatch.tri    { background: linear-gradient(160deg, #1c1c1c, #4b1c10 55%, #cfa07a); }
.coat-card .swatch.black  { background: linear-gradient(160deg, #1c1c1c, #4a4a4a); }
.coat-card .swatch.brindle{
	background:
		repeating-linear-gradient(125deg, #4b1c10 0 14px, #1c1c1c 14px 24px),
		linear-gradient(160deg, #71281a, #4b1c10);
}

/* event card box used in homepage */
.event-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	padding: 16px 18px;
	border-radius: 2px;
}
.event-card p.kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.event-card h4 { margin: 0 0 6px; }

/* small newsletter signup in footer */
.news-signup {
	display: flex;
	gap: 6px;
	margin-top: 8px;
}
.news-signup input[type=email] {
	flex: 1;
	width: auto;
	padding: 7px 9px;
	background: #fff;
	border: 1px solid #ccc;
}
.news-signup button {
	padding: 8px 14px;
	background: #1f5132;
	color: #fff;
	border: 0;
	cursor: pointer;
	font: inherit;
}
.news-signup button:hover { background: #143a23; }

/* burger button used below 760px */
.nav-toggle {
	display: none;
	background: transparent;
	border: 0;
	width: 44px;
	height: 44px;
	cursor: pointer;
	position: absolute;
	top: 6px;
	right: 0;
	padding: 0;
}
.nav-toggle span {
	display: block;
	width: 22px;
	height: 2px;
	margin: 5px auto;
	background: #444;
	transition: transform .2s ease, opacity .2s ease;
}
.nav-toggle[aria-expanded="true"] span:nth-child(1) { transform: translateY(7px) rotate(45deg); }
.nav-toggle[aria-expanded="true"] span:nth-child(2) { opacity: 0; }
.nav-toggle[aria-expanded="true"] span:nth-child(3) { transform: translateY(-7px) rotate(-45deg); }

/* skip link */
.skip {
	position: absolute; left: -9999px; top: 0;
	background: #1f2933; color: #fff;
	padding: 8px 12px; text-decoration: none; z-index: 1000;
}
.skip:focus { left: 8px; top: 8px; }

/* respect reduced motion */
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after {
		transition-duration: 0s !important;
		animation-duration: 0s !important;
	}
}

/*
   responsive layer
   the 960 grid is fixed by design; on small screens we drop the fixed
   width and let grid columns stack.
*/
@media (max-width: 959px) {
	.container_12 {
		width: 100%;
		padding: 0 16px;
		box-sizing: border-box;
	}
	.container_12 .grid_1,
	.container_12 .grid_2,
	.container_12 .grid_3,
	.container_12 .grid_4,
	.container_12 .grid_5,
	.container_12 .grid_6,
	.container_12 .grid_7,
	.container_12 .grid_8,
	.container_12 .grid_9,
	.container_12 .grid_10,
	.container_12 .grid_11,
	.container_12 .grid_12 {
		width: auto;
		float: none;
		margin-left: 0;
		margin-right: 0;
	}
	.container_12 .push_3 { left: 0; }
	#logo { padding-bottom: 12px; }
	#nav { margin-top: 0; }
	.nav-toggle { display: inline-flex; flex-direction: column; justify-content: center; }
	.jqueryslidemenu ul { float: none; }
	.jqueryslidemenu ul li {
		display: none;
		float: none;
	}
	.jqueryslidemenu.open ul li {
		display: block;
		border-top: 1px solid #eee;
	}
	.jqueryslidemenu ul li a {
		padding: 12px 4px;
	}
	#slider, #slider_wrap { width: 100%; height: auto; }
	.hero-photo { height: 240px; }
	.hero-photo .hero-text { left: 16px; right: 16px; bottom: 16px; }
	.hero-photo .hero-text h2 { font-size: 22px; }
}

@media (max-width: 560px) {
	.hero-photo { height: 200px; }
	.hero-photo .hero-text h2 { font-size: 19px; }
	.hero-photo .hero-text p { font-size: 14px; }
}

/*
   Dropdown nav - replaces the template's jqueryslidemenu.js (jQuery 1.5
   plugin was dropped for security). Pure CSS :hover with focus-within
   for keyboard access, plus mobile-friendly inline expansion when the
   burger is open.
*/

.jqueryslidemenu ul li ul.submenu {
	visibility: hidden;
	opacity: 0;
	transition: opacity .15s ease, visibility 0s linear .15s;
	pointer-events: none;
	min-width: 210px;
	padding: 6px 0;
	background-color: #fff;
	border: 1px solid #d0d3d8;
	box-shadow: 0 4px 14px rgba(31,41,51,.08);
}
.jqueryslidemenu ul li:hover > ul.submenu,
.jqueryslidemenu ul li:focus-within > ul.submenu,
.jqueryslidemenu ul li.touch-open > ul.submenu {
	visibility: visible;
	opacity: 1;
	pointer-events: auto;
	transition-delay: 0s;
}
/* right-most dropdown hangs past the viewport at 1024 without this */
#primary-nav > li:last-child ul.submenu { left: auto; right: 0; }

.jqueryslidemenu ul li ul.submenu li {
	font-size: 13px;
	display: list-item;
	float: none;
	margin: 0;
}
.jqueryslidemenu ul li ul.submenu li a {
	display: block;
	padding: 8px 18px;
	text-transform: none;
	line-height: 1.35;
	color: #444;
	white-space: nowrap;
}
.jqueryslidemenu ul li ul.submenu li a:hover {
	color: #1f5132;
}
.jqueryslidemenu ul li ul.submenu li a[aria-current="page"] {
	color: #1f5132;
	font-weight: bold;
}

/* Mobile: when the burger opens the nav, dropdowns flatten inline so
   users can see and tap into them without hovering. */
@media (max-width: 959px) {
	.jqueryslidemenu.open ul li ul.submenu {
		position: static;
		visibility: visible;
		opacity: 1;
		pointer-events: auto;
		box-shadow: none;
		border: 0;
		background: transparent;
		padding: 0 0 6px 18px;
		min-width: 0;
	}
	.jqueryslidemenu.open ul li.has-children > a::after {
		content: "";
	}
	.jqueryslidemenu ul li ul.submenu li a {
		padding: 8px 4px;
	}
}

/* Article body styling for migrated content. The Joomla bodies bring
   their own inline HTML so we keep this light and let the body speak. */
.article-body { padding: 8px 0 0; }
.article-body h1 {
	font-size: 28px;
	line-height: 1.15;
	margin: 0 0 14px;
	color: #1f5132;
}
.article-body h2 { font-size: 22px; margin-top: 28px; }
.article-body h3 { font-size: 18px; margin-top: 22px; }
.article-body p { line-height: 1.6; }
.article-body ul, .article-body ol { line-height: 1.55; padding-left: 24px; margin-bottom: 16px; }
.article-body img { max-width: 100%; height: auto; margin: 12px 0; }
.article-body table { border-collapse: collapse; margin: 14px 0; }
.article-body table td, .article-body table th {
	padding: 6px 10px;
	border: 1px solid #d0d3d8;
	vertical-align: top;
}
.article-body table th { background: #edeef1; }
#intro.article-head { border-bottom: 0; padding-bottom: 10px; margin-bottom: 20px; }
.article-body.lib-article-body { max-width: none; }
.article-topnav { text-align: right; margin: 0 0 8px; }
.article-byline { font-style: italic; color: #6b7c93; margin: 4px 0 0; }
.article-figure { margin: 18px 0; text-align: center; }
/* a figure leading the article sits right under the intro rule; drop its top
   margin so there isn't a big empty band above the image */
.article-body > .article-figure:first-child { margin-top: 0; }
.article-figure img { margin: 0 auto; border-radius: 3px; }
.article-figure video { display: block; max-width: 100%; height: auto; margin: 0 auto; border-radius: 3px; background: #000; }
.article-figure figcaption { font-size: 12px; color: #6b7c93; margin-top: 6px; }
.article-body p.article-source {
	margin-top: 36px;
	font-size: 14px !important;
	font-weight: 600;
	color: #6b7c93 !important;
}
.article-back { margin-top: 22px; text-align: right; }
.article-topnav a, .article-back a { font-size: 14px !important; color: #1f5132; font-weight: 600; text-decoration: underline; }
.article-cols { column-count: 2; column-gap: 36px; }
.article-body .article-cols p { font-size: 14px !important; margin-top: 0; margin-bottom: 14px; }
.article-cols .article-figure { break-inside: avoid; margin: 4px 0 14px; }
@media (max-width: 700px) {
	.article-cols { column-count: 1; }
}
.article-body .article-note { font-size: 12px; color: #6b7c93; margin-top: 14px; }
.article-body .article-notes { font-size: 12px; color: #6b7c93; margin-top: 18px; border-top: 1px solid #e2e5ea; padding-top: 10px; }
.article-body .article-notes p { margin: 0 0 6px; }
.article-body .article-note sup, .article-body sup { font-size: 0.7em; }

/* native stock - imported dog record */
.import-subhead { font-style: italic; color: #6b7c93; margin: 4px 0 0; }
.import-photos { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; align-items: start; margin: 10px 0 0; }
.import-photos--1 { grid-template-columns: minmax(0, 360px); }
.import-photos--2 { grid-template-columns: repeat(2, 1fr); max-width: 640px; }
.import-photos figure { margin: 0; text-align: center; }
.import-photos img { width: 100%; height: auto; border-radius: 3px; }
.import-photos figcaption { font-size: 12px; color: #6b7c93; margin-top: 5px; }
.import-offspring { margin: 4px 0 24px; }
.import-body .article-back { margin-top: 40px; }
.import-top { display: grid; grid-template-columns: 1fr 300px; gap: 32px; align-items: start; margin-top: 34px; }
.import-about h3 { font-size: 18px; margin: 0 0 12px; }
.import-facts-card { border-left: 3px solid #1f5132; padding: 2px 0 2px 18px; }
.import-facts { margin: 0; display: grid; grid-template-columns: max-content 1fr; gap: 7px 16px; font-size: 14px; }
.import-facts dt { font-weight: 600; color: #1f5132; }
.import-facts dd { margin: 0; }
.import-section { margin-top: 30px; }
.import-section h3 { font-size: 18px; margin: 0 0 12px; }
.article-body .import-quote { margin: 0; padding: 0; background: none; border: 0; border-radius: 0; color: #333; font-style: italic; }

.litter { margin: 0; padding: 16px 0; border-top: 1px solid #e2e5ea; }
.litter:first-of-type { border-top: 0; padding-top: 4px; }
.litter-head { font-weight: 600; margin: 0 0 14px; }
.litter-offspring { font-size: 14px; margin: 14px 0 0; }
.litter-offspring .lbl { color: #1f5132; font-weight: 600; }

/* pedigree bracket (sire of the litter, 3 generations) */
.pedigree-wrap { overflow-x: auto; overflow-y: hidden; padding-bottom: 4px; margin-bottom: 16px; cursor: zoom-in; }
.pedigree-wrap:focus { outline: 2px solid #1f5132; outline-offset: 2px; }
.ped, .ped ul { list-style: none; margin: 0; padding: 0; }
.ped { display: inline-flex; font-size: 13px; }
.ped ul { display: flex; flex-direction: column; justify-content: center; }
.ped li { display: flex; align-items: center; position: relative; padding-left: 22px; }
.ped > li { padding-left: 0; }
.ped li::before { content: ""; position: absolute; left: 0; top: 50%; width: 22px; height: 1px; background: #c2cbc2; }
.ped li::after { content: ""; position: absolute; left: 0; top: 0; bottom: 0; width: 1px; background: #c2cbc2; }
.ped li:first-child::after { top: 50%; }
.ped li:last-child::after { bottom: 50%; }
.ped li:only-child::after { display: none; }
.ped > li::before, .ped > li::after { display: none; }
.ped-dog { white-space: nowrap; margin: 4px 0; padding: 6px 11px; line-height: 1.2; background: #f5f7f5; border: 1px solid #d4dbd4; border-left: 3px solid #1f5132; border-radius: 2px; }
.ped-sire { background: #eaf1ea; font-weight: 600; }
.ped-dog a { color: #1f5132; text-decoration: underline; }

.article-head .crumbs { margin-bottom: 22px; }
.import-facts-solo { max-width: 460px; margin-top: 26px; }

/* imported-dogs index: search/sort + card grid */
.import-controls { display: flex; flex-wrap: wrap; align-items: center; gap: 14px; margin: 22px 0 18px; }
.import-controls #import-search { flex: 1 1 240px; min-width: 0; padding: 9px 12px; border: 1px solid #cfd4da; border-radius: 4px; font-size: 15px; }
.import-sort { display: flex; align-items: center; gap: 6px; font-size: 14px; color: #6b7c93; }
.import-sort button { padding: 6px 12px; border: 1px solid #cfd4da; background: #fff; border-radius: 4px; cursor: pointer; font: inherit; font-size: 14px; color: #1f5132; }
.import-sort button.is-active { background: #1f5132; color: #fff; border-color: #1f5132; }
.import-count { font-size: 13px; color: #6b7c93; }
.ir-list { list-style: none; margin: 18px 0 28px; padding: 0; column-width: 280px; column-gap: 40px; }
.ir-group { font-weight: 700; color: #1f5132; font-size: 15px; margin: 18px 0 7px; padding-bottom: 4px; border-bottom: 1px solid #e2e5ea; break-inside: avoid; break-after: avoid; }
.ir-group:first-child { margin-top: 0; }
.ir { padding: 4px 0; break-inside: avoid; }
.ir a { font-weight: 600; }
.ir-call { color: #4a5664; font-size: 13px; }
.ir-meta { color: #6b7c93; font-size: 13px; margin-left: 4px; }

/* photos go fluid once the grid does (<=959), so the forced img max-width
   doesn't squash the fixed-height strip */
@media (max-width: 820px) {
	.import-top { grid-template-columns: 1fr; gap: 22px; }
}
@media (max-width: 520px) {
	.import-photos { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 560px) {
	.import-facts { grid-template-columns: 1fr; gap: 2px 0; }
	.import-facts dt { margin-top: 8px; }
	.import-facts dt:first-child { margin-top: 0; }
}

.crumbs {
	font-size: 13px;
	color: #6b7c93;
	margin: 0 0 18px;
}
.crumbs a { color: #6b7c93; text-decoration: none; }
.crumbs a:hover { color: #1f5132; text-decoration: underline; }
.migration-note {
	background: #edeef1;
	border-left: 3px solid #1f5132;
	padding: 8px 14px;
	margin: 0 0 22px;
	font-size: 13px;
	color: #555;
}
.article-meta {
	margin-top: 36px;
	padding-top: 16px;
	border-top: 1px solid #d0d3d8;
	color: #6b7c93;
}
.article-aside { font-size: 13px; }

/* logo image sized to fit the header bar */
#logo a img {
	max-height: 100px;
	width: auto;
	height: auto;
	display: block;
}
@media (max-width: 959px) {
	#header {
		min-height: 0;
		position: relative;
		padding-bottom: 4px;
	}
	#logo {
		position: static;
		margin-bottom: 0;
	}
	#logo a img { max-height: 100px; display: block; }
	#nav {
		position: static !important;
		min-height: 0 !important;
		margin-top: 0;
	}
	.nav-toggle {
		position: absolute;
		top: 8px;
		right: 0;
	}
}

/* Photo-as-hero pattern. When .hero-photo wraps an <img>, the image
   covers the container and a left-side gradient overlay keeps the
   text readable. Pages without an image fall back to the green
   gradient defined earlier. */
.hero-photo.has-image {
	background: #1f2933;
	overflow: hidden;
}
.hero-photo.has-image img {
	position: absolute;
	inset: 0;
	width: 100%;
	height: 100%;
	object-fit: cover;
	z-index: 0;
}
.hero-photo.has-image::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(to right, rgba(15, 30, 25, .65) 0%, rgba(15, 30, 25, .25) 55%, rgba(15, 30, 25, 0) 100%);
	z-index: 1;
	pointer-events: none;
}
.hero-photo.has-image .hero-text,
.hero-photo.has-image .placeholder-tag {
	position: relative;
	z-index: 2;
}

/* Native Stock landing - year list */
.year-list {
	list-style: none;
	padding: 0;
	margin: 8px 0 24px;
	display: grid;
	grid-template-columns: 1fr;
	gap: 4px;
}
.year-list li {
	padding: 6px 10px;
	border-left: 3px solid #1f5132;
	background: #edeef1;
	font-size: 14px;
}
.year-list li a { color: #1f5132; text-decoration: none; font-weight: bold; margin-right: 4px; }
.year-list li a:hover { text-decoration: underline; }

/* Native Stock - current applicant feature */
.ns-feature {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 24px;
	align-items: center;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 20px;
	margin-bottom: 24px;
}
.ns-feature-photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 2px;
}
.ns-feature-text .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.ns-feature-text h3 {
	margin: 0 0 8px;
	font-size: 24px;
}
@media (max-width: 760px) {
	.ns-feature { grid-template-columns: 1fr; }
}

/* Native Stock - per-dog page layout */
.dog-page {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 24px;
	align-items: start;
}
.dog-page > * { grid-column: 1 / -1; }
.dog-photo {
	grid-column: 1 / 2;
	grid-row: 2 / 4;
}
.dog-photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 2px;
}
.dog-facts {
	grid-column: 2 / 3;
	grid-row: 2 / 3;
	background: #edeef1;
	border-left: 3px solid #1f5132;
	padding: 16px;
	font-size: 14px;
	line-height: 1.7;
}
.dog-facts h3 { margin-top: 0; font-size: 14px; text-transform: uppercase; letter-spacing: .08em; color: #1f5132; }
.dog-docs {
	grid-column: 2 / 3;
	grid-row: 3 / 4;
	list-style: none;
	padding: 0;
	margin: 0;
}
.dog-docs li {
	padding: 8px 0;
	border-bottom: 1px solid #d0d3d8;
}
.dog-vote {
	grid-column: 1 / -1;
	grid-row: 4 / 5;
	background: #fff;
	border: 1px solid #d0d3d8;
	padding: 16px;
	font-size: 14px;
	line-height: 1.55;
}
.dog-back { grid-column: 1 / -1; margin-top: 16px; }
@media (max-width: 760px) {
	.dog-page { grid-template-columns: 1fr; }
	.dog-photo, .dog-facts, .dog-docs, .dog-vote, .dog-back { grid-column: 1 / -1; }
}

/* Native Stock - year list cleanup. The migrated tables retain their
   structure but we restyle them so they don't look like 2008 anymore. */
.explainer {
	width: 100%;
	border: 0;
	background: #edeef1;
	border-left: 4px solid #1f5132;
	margin: 0 0 24px;
}
.explainer th, .explainer td {
	padding: 14px 18px;
	text-align: left;
}
.explainer h1 {
	font-size: 18px;
	color: #1f5132;
	margin: 0 0 8px;
	display: flex;
	align-items: center;
	gap: 12px;
}
.explainer h1 img { max-height: 60px; width: auto; }
.explainer p { margin: 6px 0; font-size: 14px; }

.dog-row {
	width: 100%;
	margin: 0 0 18px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-collapse: collapse;
}
.dog-row tr:first-child th {
	background: #1f5132;
	color: #fff;
	padding: 10px 16px;
	text-align: left;
}
.dog-row tr:first-child th h1 {
	color: #fff;
	margin: 0;
	font-size: 20px;
}
.dog-row tr:first-child th h1 a {
	color: #fff;
	text-decoration: none;
}
.dog-row tr:first-child th h1 a:hover {
	color: #b8e0c4;
	text-decoration: underline;
}
.dog-row td {
	padding: 16px;
	vertical-align: top;
}
.dog-row td:first-child {
	width: 230px;
}
.dog-row td img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 2px;
}
.dog-row h1, .dog-row h2, .dog-row h3, .dog-row h4 {
	font-size: 16px;
	margin: 8px 0 4px;
	color: #1f2933;
}
.dog-row h1 { font-size: 18px; }
.dog-row h3 a { color: #1f5132; }

/* All Dogs grid */
.dog-card {
	margin-bottom: 18px;
}
.dog-card a {
	display: block;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 2px;
	padding: 0;
	color: #1f2933;
	text-decoration: none;
	transition: box-shadow .15s ease, border-color .15s ease;
}
.dog-card a:hover {
	box-shadow: 0 6px 16px rgba(31,41,51,.08);
	border-color: #1f5132;
}
.dog-card-photo {
	width: 100%;
	height: 200px;
	overflow: hidden;
	background: #1f5132;
}
.dog-card-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center 22%;
	display: block;
}
/* per-dog thumb crop overrides */
.dog-card-photo[data-slug="avongara-adanne"] img,
.ns-year-dog[data-slug="avongara-adanne"] img {
	object-position: center 8%;
}
.dog-card-nophoto {
	display: flex;
	align-items: center;
	justify-content: center;
	color: #b8e0c4;
	font-family: 'InterVariable', Georgia, serif;
	font-size: 60px;
}
.dog-card h4 {
	margin: 12px 14px 4px;
	font-size: 16px;
}
.dog-card-call {
	margin: 0 14px 4px;
	font-size: 13px;
	color: #6b7c93;
	font-style: italic;
}
.dog-card-meta {
	margin: 0 14px 14px;
	font-size: 12px;
	color: #6b7c93;
}
.dog-card-status {
	display: inline-block;
	padding: 2px 8px;
	border-radius: 10px;
	font-size: 11px;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: .05em;
}
.dog-card-status.status-approved {
	background: #d4e7d9;
	color: #1f5132;
}
.dog-card-status.status-applicant {
	background: #edeef1;
	color: #8a6d3b;
}
.dog-card-status.status-on-ballot {
	background: #fff3cd;
	color: #856404;
}
.dog-card-status.status-board-disapproved {
	background: #f8d7da;
	color: #842029;
}
.dog-card.dog-card-board-disapproved,
.dog-card.dog-card-denied-membership {
	opacity: 0.45;
}
.dog-card.dog-card-board-disapproved:hover,
.dog-card.dog-card-denied-membership:hover {
	opacity: 0.75;
}
.dog-card-status.status-denied-membership {
	background: #f8d7da;
	color: #842029;
}

/* Modernized Native Stock dog profile */
.dog-profile { padding: 12px 0 40px; }

.dog-profile-top {
	display: grid;
	grid-template-columns: minmax(280px, 360px) 1fr;
	gap: 28px;
	align-items: start;
	margin-bottom: 32px;
}
.dog-photo-col img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 3px;
}
.dog-info-col h1 {
	font-size: 32px;
	line-height: 1.1;
	margin: 8px 0 14px;
	color: #1f2933;
}
.dog-info-col .dog-fact-strip { margin-bottom: 22px; }
.dog-info-col .dog-docs-grid { margin: 0; }
.dog-info-col .dog-docs-grid { grid-template-columns: repeat(auto-fill, minmax(150px, 1fr)); }

/* legacy class names kept for non-profile pages */
.dog-hero {
	display: grid;
	grid-template-columns: minmax(280px, 1fr) 1.4fr;
	gap: 28px;
	align-items: center;
	margin-bottom: 32px;
}
.dog-hero-photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 3px;
}
.dog-hero-text h1 {
	font-size: 36px;
	line-height: 1.1;
	margin: 8px 0 14px;
	color: #1f2933;
}
.dog-status-pill {
	display: inline-block;
	padding: 4px 12px;
	border-radius: 12px;
	font-size: 11px;
	font-weight: bold;
	text-transform: uppercase;
	letter-spacing: .08em;
	margin: 0 0 8px;
}
.dog-status-pill.status-approved      { background: #d4e7d9; color: #1f5132; }
.dog-status-pill.status-applicant     { background: #fff3cd; color: #856404; }
.dog-status-pill.status-on-ballot     { background: #cfe2ff; color: #084298; }
.dog-status-pill.status-board-disapproved { background: #f8d7da; color: #842029; }

.dog-fact-strip {
	display: flex;
	flex-wrap: wrap;
	gap: 22px;
	margin: 0;
	padding: 16px 0;
	border-top: 1px solid #d0d3d8;
	border-bottom: 1px solid #d0d3d8;
	font-size: 14px;
}
.dog-fact-strip span { display: inline-flex; gap: 6px; align-items: baseline; }
.dog-fact-strip strong {
	display: block;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}

.dog-docs-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 12px;
	margin: 0 0 36px;
}
.dog-doc {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 14px 16px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	text-decoration: none;
	color: #1f2933;
	transition: border-color .15s ease, box-shadow .15s ease, transform .15s ease;
}
.dog-doc:hover {
	border-color: #1f5132;
	box-shadow: 0 4px 12px rgba(31, 81, 50, .12);
	transform: translateY(-1px);
}
.dog-doc-label {
	font-weight: 500;
	font-size: 15px;
}
.dog-doc-kind {
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
	background: #edeef1;
	padding: 3px 8px;
	border-radius: 2px;
}

/* Dog profile, registry-card layout: photo + status seal + registration in a
   card top right, one merged Record table below it, story + votes + litters +
   gallery in the main column. */
.dog-prof-head { margin: 6px 0 18px; }
.dog-prof-head h1 { font-size: 34px; line-height: 1.1; margin: 0; color: #1f2933; }
.dog-prof-callname { margin: 4px 0 0; font-size: 18px; color: #4a5664; font-style: italic; }
.dog-prof-cols { display: grid; grid-template-columns: 1fr 340px; gap: 34px; align-items: start; }
/* grid children default to min-width auto; without this a wide pedigree or
   a full-size card photo forces its column past the page edge */
.dog-prof-main, .dog-prof-side { min-width: 0; }
.dog-prof-gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 10px; margin-top: 22px; }
.dog-prof-gallery figure { margin: 0; }
.dog-prof-gallery a { display: block; }
.dog-prof-gallery img { width: 100%; height: auto; border-radius: 3px; display: block; }
.dog-prof-gallery figcaption { margin-top: 4px; font-size: 12px; color: #6b7c93; line-height: 1.4; }
.dog-prof-card { background: #fff; border: 1px solid #d0d3d8; border-radius: 3px; overflow: hidden; margin-bottom: 18px; }
/* photos render at their real size (capped to the card) - never upscaled */
.dog-prof-card img { width: auto; max-width: 100%; height: auto; display: block; margin: 0 auto; padding: 12px 12px 0; box-sizing: border-box; }
.dog-prof-seal { display: block; width: 100%; box-sizing: border-box; margin: 12px 0 0; padding: 8px 14px; font-size: 11px; font-weight: bold; letter-spacing: .1em; text-transform: uppercase; text-align: center; }
.dog-prof-seal.status-approved { background: #1f5132; color: #fff; }
.dog-prof-seal.status-applicant { background: #856404; color: #fff; }
.dog-prof-seal.status-on-ballot { background: #084298; color: #fff; }
.dog-prof-seal.status-board-disapproved { background: #842029; color: #fff; }
.dog-prof-seal.status-denied-membership { background: #6b7c93; color: #fff; }
.dog-prof-seal.import-band { background: #4a5664; color: #fff; }
.dog-prof-reg { display: grid; grid-template-columns: 1fr 1fr; margin: 0; padding: 12px 14px 14px; gap: 10px 12px; }
.dog-prof-reg dt { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: #1f5132; font-weight: bold; }
.dog-prof-reg dd { margin: 1px 0 0; font-size: 14px; color: #1f2933; }
.dog-prof-record, .dog-prof-docs { background: #fff; border: 1px solid #d0d3d8; border-radius: 3px; padding: 16px 18px; margin-bottom: 18px; }
.dog-prof-record h2, .dog-prof-docs h2 { margin: 0 0 10px; font-size: 13px; letter-spacing: .08em; text-transform: uppercase; color: #1f5132; }
.dog-prof-record dl { margin: 0; display: grid; grid-template-columns: 1fr 1fr; gap: 10px 14px; }
.dog-prof-record dl > div { min-width: 0; }
.dog-prof-record dl > div.dog-prof-wide { grid-column: 1 / -1; }
.dog-prof-record dt { font-size: 10.5px; letter-spacing: .08em; text-transform: uppercase; color: #6b7c93; font-weight: bold; }
.dog-prof-record dd { margin: 1px 0 0; font-size: 13.5px; line-height: 1.5; color: #1f2933; overflow-wrap: break-word; }
.dog-prof-tests { margin: 2px 0 0; padding: 0; list-style: none; columns: 2; column-gap: 16px; }
.dog-prof-tests li { margin: 0 0 4px !important; font-size: 13px; line-height: 1.45; break-inside: avoid; }
.dog-prof-docs ul { list-style: none; margin: 0; padding: 0; }
.dog-prof-docs li { margin-top: 0 !important; }
.dog-prof-docs li + li { margin-top: 8px !important; }
.dog-prof-docs a { display: flex; justify-content: space-between; align-items: center; padding: 9px 12px; border: 1px solid #d0d3d8; border-radius: 3px; text-decoration: none; color: #1f2933; font-size: 14px; transition: border-color .15s ease; }
.dog-prof-docs a:hover { border-color: #1f5132; }
.dog-pager { display: flex; justify-content: space-between; align-items: baseline; gap: 14px; margin-top: 30px; padding-top: 14px; border-top: 1px solid #d0d3d8; font-size: 14px; }
.dog-pager a { color: #1f5132; text-decoration: none; }
.dog-pager a:hover { text-decoration: underline; }
.dog-pager-index { font-size: 11px; letter-spacing: .08em; text-transform: uppercase; font-weight: bold; white-space: nowrap; }
.dog-pager-prev, .dog-pager-next { min-width: 0; }
.dog-pager-next { text-align: right; }
.dog-lightbox { position: fixed; inset: 0; z-index: 1000; background: rgba(20, 25, 22, .9); display: flex; align-items: center; justify-content: center; }
.dog-lightbox[hidden] { display: none; }
.dog-lightbox img { max-width: 90vw; max-height: 88vh; width: auto; height: auto; border-radius: 3px; }
.dog-lightbox img[hidden] { display: none; }
.dog-lb-panel { background: #fff; border-radius: 3px; max-width: 92vw; max-height: 88vh; overflow: auto; padding: 22px 26px; }
.dog-lb-panel[hidden] { display: none; }
.dog-lb-btn { position: absolute; min-width: 44px; min-height: 44px; border: 0; border-radius: 3px; background: rgba(255, 255, 255, .12); color: #fff; font-size: 28px; line-height: 1; cursor: pointer; }
.dog-lb-btn:hover, .dog-lb-btn:focus { background: rgba(255, 255, 255, .28); }
.dog-lb-close { top: 14px; right: 14px; }
.dog-lb-prev { left: 14px; top: 50%; transform: translateY(-50%); }
.dog-lb-next { right: 14px; top: 50%; transform: translateY(-50%); }
@media (max-width: 860px) {
	.dog-prof-cols { grid-template-columns: 1fr; }
	.dog-prof-side { order: -1; width: 100%; max-width: 420px; }
	.dog-prof-gallery { grid-template-columns: repeat(2, 1fr); }
}

.dog-vote {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 22px 26px;
	margin-bottom: 28px;
	font-size: 14.5px;
	line-height: 1.65;
}
.dog-vote h2 {
	margin: 0 0 12px;
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #1f5132;
}

.dog-description {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 22px 26px;
	margin: 0 0 28px;
	line-height: 1.65;
}
.dog-description h2 {
	margin: 0 0 12px;
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #1f5132;
}
.dog-description p { margin: 0 0 12px; }
.dog-description p:last-child { margin-bottom: 0; }

@media (max-width: 720px) {
	.dog-profile-top { grid-template-columns: 1fr; gap: 18px; }
	.dog-info-col h1 { font-size: 26px; }
	.dog-hero { grid-template-columns: 1fr; gap: 18px; }
	.dog-hero-text h1 { font-size: 28px; }
	.dog-docs-grid { grid-template-columns: 1fr 1fr; }
}

/* Dog profile - Wikipedia-style with sidebar */
.dog-header {
	margin-bottom: 24px;
	padding-bottom: 14px;
	border-bottom: 1px solid #d0d3d8;
}
.dog-header h1 {
	font-size: 36px;
	line-height: 1.05;
	margin: 0;
	color: #1f2933;
}
.dog-header .dog-status-pill { margin: 0 0 10px; }

.dog-body {
	display: grid;
	grid-template-columns: 1fr 220px;
	gap: 36px;
	align-items: start;
}
.dog-status-kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.dog-callname {
	margin: 4px 0 18px;
	font-size: 16px;
	font-style: italic;
	color: #6b7c93;
}
.dog-headline {
	margin: 0 0 4px;
	color: #1f2933;
}
.dog-main h2 {
	font-size: 18px;
	color: #1f5132;
	margin: 0 0 12px;
	text-transform: uppercase;
	letter-spacing: .06em;
}
.dog-main h2:not(:first-child) { margin-top: 28px; }
.dog-main p {
	margin: 0 0 12px;
}

.dog-sidebar {
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 0 0 18px;
	position: sticky;
	top: 16px;
}
.dog-sidebar-photo { margin: 0; }
.dog-sidebar-photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 3px 3px 0 0;
}
.dog-sidebar-facts {
	margin: 14px 18px 16px;
	font-size: 14px;
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 6px 14px;
}
.dog-sidebar-facts dt {
	color: #6b7c93;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	padding-top: 2px;
}
.dog-sidebar-facts dd {
	margin: 0;
	font-weight: 500;
}
.dog-sidebar-docs {
	margin: 10px 18px 0;
	padding-top: 10px;
	border-top: 1px solid #d0d3d8;
}
.dog-sidebar-docs h3 {
	margin: 0 0 10px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #1f5132;
	font-weight: bold;
}
.dog-sidebar-docs ul {
	list-style: none;
	padding: 0;
	margin: 0;
}
.dog-sidebar-docs li {
	margin: 0;
}
.dog-sidebar-docs a {
	display: flex;
	justify-content: space-between;
	align-items: center;
	padding: 9px 0;
	border-bottom: 1px solid #d0d3d8;
	text-decoration: none;
	color: #1f2933;
	font-size: 14px;
}
.dog-sidebar-docs li:last-child a { border-bottom: 0; }
.dog-sidebar-docs a:hover { color: #1f5132; }
.dog-sidebar-docs .dog-doc-kind {
	font-size: 10px;
	letter-spacing: .12em;
	color: #6b7c93;
	font-weight: bold;
	background: #fff;
	padding: 2px 7px;
	border-radius: 2px;
	border: 1px solid #d0d3d8;
}
.dog-sidebar-docs a:hover .dog-doc-kind {
	color: #1f5132;
	border-color: #1f5132;
}

.dog-vote {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 22px 26px;
	margin: 28px 0 0;
	font-size: 14.5px;
	line-height: 1.65;
}
.dog-vote h2 {
	margin: 0 0 12px !important;
	font-size: 14px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #1f5132;
}

@media (max-width: 860px) {
	.dog-body { grid-template-columns: 1fr; }
	.dog-sidebar { position: static; }
	.dog-header h1 { font-size: 28px; }
}

/* Inline dog status next to name */
.dog-header h1 {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 14px;
}
.dog-name { display: inline; }
.dog-status {
	font-family: var(--sans, sans-serif);
	font-weight: normal;
	font-size: 15px;
	letter-spacing: 0;
	text-transform: none;
	color: #6b7c93;
	position: relative;
	padding-left: 16px;
}
.dog-status::before {
	content: "";
	position: absolute;
	left: 0;
	top: 50%;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #6b7c93;
	transform: translateY(-50%);
}
.dog-status.status-applicant         { color: #8a6d3b; }
.dog-status.status-applicant::before { background: #d4a017; }
.dog-status.status-approved          { color: #1f5132; }
.dog-status.status-approved::before  { background: #1f5132; }
.dog-status.status-on-ballot         { color: #084298; }
.dog-status.status-on-ballot::before { background: #084298; }
.dog-status.status-board-disapproved,
.dog-status.status-denied-board,
.dog-status.status-denied-membership   { color: #842029; }
.dog-status.status-board-disapproved::before,
.dog-status.status-denied-board::before,
.dog-status.status-denied-membership::before { background: #842029; }

/* Headline inside the dog-main column replaces the separate top header */
.dog-headline {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 14px;
	margin: 0 0 22px;
	padding-bottom: 14px;
	border-bottom: 1px solid #d0d3d8;
	font-size: 32px;
	line-height: 1.1;
	color: #1f2933;
}
.dog-headline .dog-status {
	font-size: 14px;
}

/* Headline overrides - match status formatting to name */
.dog-headline {
	padding-bottom: 0 !important;
	border-bottom: 0 !important;
	font-family: var(--serif, Georgia, serif);
}
.dog-headline .dog-status {
	font-family: inherit !important;
	font-size: inherit !important;
	font-weight: inherit !important;
	color: inherit !important;
	letter-spacing: 0 !important;
	text-transform: none !important;
	padding-left: 0 !important;
}
.dog-headline .dog-status::before {
	content: "\00B7" !important;
	position: static !important;
	display: inline-block !important;
	width: auto !important;
	height: auto !important;
	border-radius: 0 !important;
	background: transparent !important;
	transform: none !important;
	margin-right: 14px;
	font-weight: normal;
}
.dog-headline .dog-status.status-applicant::before          { color: #d4a017 !important; }
.dog-headline .dog-status.status-approved::before           { color: #1f5132 !important; }
.dog-headline .dog-status.status-on-ballot::before          { color: #084298 !important; }
.dog-headline .dog-status.status-board-disapproved::before,
.dog-headline .dog-status.status-denied-board::before,
.dog-headline .dog-status.status-denied-membership::before  { color: #842029 !important; }

/* Plain headline - no dot, no coloring, just name - status */
.dog-headline {
	font-family: 'InterVariable', Arial, sans-serif;
	font-size: 24px !important;
	font-weight: bold;
	color: #1f2933 !important;
	gap: 0 !important;
	margin: 0 0 4px !important;
}
.dog-headline .dog-status,
.dog-headline .dog-name { all: unset; }

/* Sidebar buffer symmetry - photo flush top, docs flush bottom */
.dog-sidebar { padding-bottom: 0 !important; }
.dog-sidebar-docs { padding-bottom: 4px; }


/* Bulletin archive */
.bulletin-stats {
	font-size: 14px;
	color: #6b7c93;
	margin-top: 4px;
}
.bulletin-decade {
	margin-bottom: 32px;
}
.bulletin-decade h3 {
	font-family: var(--serif, Georgia, serif);
	font-size: 24px;
	color: #1f5132;
	margin: 0 0 14px;
	padding-bottom: 8px;
	border-bottom: 1px solid #d0d3d8;
}
.bulletin-issue-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 8px;
}
.bulletin-issue-list a {
	display: grid;
	grid-template-columns: 4em 1fr auto;
	gap: 10px;
	align-items: baseline;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 2px;
	text-decoration: none;
	color: #1f2933;
	font-size: 14px;
}
.bulletin-issue-list a:hover {
	border-color: #1f5132;
	background: #edeef1;
}
.bulletin-issue-year {
	font-weight: bold;
	color: #1f5132;
}
.bulletin-issue-month {
	color: #444;
}
.bulletin-issue-size {
	font-size: 12px;
	color: #6b7c93;
}

/* Bulletin search */
.bsearch {
	margin: 0 0 22px;
}
.bsearch input {
	width: 100%;
	max-width: 560px;
	padding: 12px 16px;
	font-size: 16px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
	font-family: inherit;
}
.bsearch input:focus {
	outline: none;
	border-color: #1f5132;
	box-shadow: 0 0 0 3px rgba(31, 81, 50, .15);
}
.bsearch-meta {
	font-size: 12px;
	color: #6b7c93;
	margin-top: 6px;
}
.bsearch-results .bsearch-empty,
.bsearch-results .bsearch-count {
	font-size: 14px;
	color: #6b7c93;
	margin: 0 0 14px;
}
.bsearch-list {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 8px;
}
.bsearch-list a {
	display: grid;
	grid-template-columns: 4em 1fr auto;
	gap: 10px;
	align-items: baseline;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 2px;
	text-decoration: none;
	color: #1f2933;
	font-size: 14px;
}
.bsearch-list a:hover {
	border-color: #1f5132;
	background: #edeef1;
}
.bsearch-year { font-weight: bold; color: #1f5132; }
.bsearch-month { color: #444; }
.bsearch-size { font-size: 12px; color: #6b7c93; }

/* Event feature card */
.event-feature {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 22px 26px;
	margin-bottom: 24px;
}
.event-feature h3 {
	font-size: 22px;
	margin: 0 0 6px;
	color: #1f2933;
}
.event-feature .event-meta {
	color: #6b7c93;
	font-size: 15px;
	margin: 0 0 14px;
}
.event-feature dl.event-facts {
	display: grid;
	grid-template-columns: max-content 1fr;
	gap: 6px 16px;
	margin: 0;
	font-size: 14px;
}
.event-feature dl.event-facts dt {
	color: #6b7c93;
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	padding-top: 2px;
}
.event-feature dl.event-facts dd { margin: 0; }

/* Nationals gallery */
.nationals-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 10px;
}
.nationals-gallery a {
	display: block;
	overflow: hidden;
	border-radius: 2px;
}
.nationals-gallery img {
	width: 100%;
	height: 140px;
	object-fit: cover;
	display: block;
	transition: transform .3s ease;
}
.nationals-gallery a:hover img { transform: scale(1.05); }

/* News list */
.news-list {
	list-style: none;
	padding: 0;
	margin: 0;
}
.news-list li {
	border-bottom: 1px solid #d0d3d8;
}
.news-list a {
	display: grid;
	grid-template-columns: 1fr 100px;
	gap: 20px;
	align-items: baseline;
	padding: 14px 4px;
	text-decoration: none;
	color: #1f2933;
}
.news-list a:hover { background: #edeef1; }
.news-list-title { font-size: 16px; }
.news-list time {
	font-size: 12px;
	color: #6b7c93;
	text-align: right;
	font-variant-numeric: tabular-nums;
}
@media (max-width: 560px) {
	.news-list a { grid-template-columns: 1fr; gap: 4px; }
	.news-list time { text-align: left; }
}

/* Affiliated clubs grid */
.club-state-block {
	margin: 0 0 32px;
}
.club-state-block:last-of-type {
	margin-bottom: 16px;
}
.club-state-h {
	font-family: 'InterVariable', Arial, sans-serif;
	font-size: 22px;
	color: #1f5132;
	margin: 0 0 14px;
	padding-bottom: 8px;
	border-bottom: 1px solid #d0d3d8;
}
.club-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 18px;
	margin: 0;
}
.club-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 18px;
	text-align: center;
}
.club-logo {
	height: 100px;
	display: flex;
	align-items: center;
	justify-content: center;
	margin-bottom: 12px;
}
.club-logo img {
	max-width: 100%;
	max-height: 100px;
	width: auto;
	height: auto;
	display: block;
}
.club-card h4 {
	margin: 0 0 4px;
	font-size: 15px;
	color: #1f2933;
}
.club-region {
	margin: 0;
	font-size: 12px;
	color: #6b7c93;
}
.club-logo-placeholder {
	width: 100%;
	height: 80px;
	background: linear-gradient(135deg, #1f5132 0%, #143a23 100%);
	color: #fff;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 13px;
	font-weight: 600;
	letter-spacing: .04em;
	padding: 8px 12px;
	border-radius: 3px;
	text-align: center;
	line-height: 1.2;
}
.club-followup {
	margin-top: 14px;
	padding: 16px 20px;
	background: #edeef1;
	border-radius: 3px;
}
.club-followup .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.club-followup p { margin: 0; font-size: 14px; line-height: 1.55; }

a.club-card-linked {
	color: inherit;
	text-decoration: none;
	display: block;
	transition: box-shadow .15s, transform .15s;
}
a.club-card-linked:hover {
	box-shadow: 0 6px 16px rgba(31, 81, 50, 0.14);
	transform: translateY(-1px);
}
.club-link-label {
	margin: 6px 0 0;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: 600;
}
.club-link-label.club-link-none {
	color: #b8a98a;
	font-style: italic;
	font-weight: 400;
	text-transform: none;
	letter-spacing: 0;
}

/* Native Stock landing - new 5-block layout */
.ns-block {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 24px 28px;
	margin-bottom: 22px;
	box-sizing: border-box;
}
.ns-block h3 {
	margin: 0 0 12px;
	font-size: 22px;
	color: #1f2933;
}
.photo-examples {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 18px;
	margin-top: 14px;
}
.photo-example {
	background: #edeef1;
	border-radius: 3px;
	padding: 14px;
}
.photo-example img {
	max-width: 100%;
	height: auto;
	display: block;
	border-radius: 3px;
	margin-bottom: 10px;
}
.photo-example p {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
}
.photo-example-bad {
	background: #fdf0f0;
	border-left: 3px solid #b44;
}
@media (max-width: 720px) {
	.photo-examples { grid-template-columns: 1fr; }
}
.standard-video {
	position: relative;
	padding-bottom: 56.25%;
	height: 0;
	margin: 14px 0;
	max-width: 640px;
}
.standard-video iframe {
	position: absolute;
	top: 0;
	left: 0;
	width: 100%;
	height: 100%;
	border: 0;
	border-radius: 3px;
}
.ns-accordion {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	margin-bottom: 22px;
	border-radius: 0 3px 3px 0;
}
.ns-accordion summary {
	cursor: pointer;
	padding: 18px 28px;
	list-style: none;
	display: flex;
	align-items: center;
	justify-content: space-between;
}
.ns-accordion summary::-webkit-details-marker { display: none; }
.ns-accordion summary::after {
	content: "+";
	color: #1f5132;
	font-weight: bold;
	font-size: 20px;
	line-height: 1;
	margin-left: 14px;
}
.ns-accordion[open] summary::after { content: "\2212"; }
.ns-accordion summary h3 {
	margin: 0;
	font-size: 20px;
	color: #1f2933;
}
.ns-accordion-body {
	padding: 0 28px 24px;
}
.ns-accordion-body p {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.6;
}
.ns-block p {
	margin: 0 0 12px;
	line-height: 1.65;
}
.ns-block p:last-child { margin-bottom: 0; }
.ns-block .button { margin-top: 6px; }

/* Current applicant block has a two-column layout */
.ns-current {
	display: grid;
	grid-template-columns: minmax(220px, 280px) 1fr;
	gap: 28px;
	align-items: center;
}
.ns-current-photo img {
	width: 100%;
	height: auto;
	display: block;
	border-radius: 3px;
}
.ns-current-text h3 {
	font-size: 26px;
	margin: 4px 0 8px;
}
.ns-current-text .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
@media (max-width: 720px) {
	.ns-current { grid-template-columns: 1fr; }
}

/* Compact year row */
.ns-years .ns-year-row {
	list-style: none;
	padding: 0;
	margin: 12px 0 0;
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
}
.ns-years .ns-year-row li { margin: 0; }
.ns-years .ns-year-row a {
	display: inline-block;
	padding: 6px 14px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #edeef1;
	color: #1f5132;
	text-decoration: none;
	font-size: 14px;
	font-weight: bold;
}
.ns-years .ns-year-row a:hover {
	background: #1f5132;
	color: #fff;
	border-color: #1f5132;
}

/* Smaller Manu photo + more tab-like year row */
.ns-current {
	grid-template-columns: 180px 1fr !important;
	gap: 24px !important;
	align-items: center;
}
.ns-current-text h3 {
	font-size: 22px !important;
}

.ns-years .ns-year-row {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 14px 0 0;
	border-bottom: 2px solid #1f5132;
}
.ns-years .ns-year-row li { margin: 0; }
.ns-years .ns-year-row a {
	display: inline-block;
	padding: 10px 22px;
	background: transparent !important;
	color: #1f5132 !important;
	border: 0 !important;
	border-radius: 0 !important;
	font-size: 15px;
	font-weight: bold;
	border-bottom: 2px solid transparent;
	margin-bottom: -2px;
	transition: background .12s ease;
}
.ns-years .ns-year-row a:hover {
	background: #1f5132 !important;
	color: #fff !important;
	border-bottom-color: #1f5132 !important;
}
@media (max-width: 720px) {
	.ns-current { grid-template-columns: 140px 1fr !important; }
}

/* Native Stock year tabs - now inline tab panels */
.ns-year-tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 14px 0 0;
}
.ns-year-tab {
	appearance: none;
	background: transparent;
	border: 0;
	border-bottom: 2px solid #1f5132;
	padding: 10px 14px;
	color: #1f5132;
	font-family: inherit;
	font-size: 15px;
	font-weight: bold;
	cursor: pointer;
	transition: background .12s ease;
}
.ns-year-tab:hover {
	background: #edeef1;
}
.ns-year-tab.is-active {
	background: #1f5132;
	color: #fff;
}

.ns-year-panel {
	display: none;
	padding: 20px 0 4px;
}
.ns-year-panel.is-active {
	display: block;
}

.ns-year-dogs {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 14px;
}
.ns-year-dog {
	display: block;
	text-decoration: none;
	color: #1f2933;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	overflow: hidden;
	transition: border-color .15s ease, box-shadow .15s ease;
}
.ns-year-dog:hover {
	border-color: #1f5132;
	box-shadow: 0 4px 12px rgba(31, 81, 50, .12);
}
.ns-year-dog img {
	width: 100%;
	aspect-ratio: 1 / 1;
	height: auto;
	object-fit: cover;
	object-position: center top;
	display: block;
}
.ns-year-dog-nophoto {
	width: 100%;
	aspect-ratio: 1 / 1;
	background: #1f5132;
	color: #b8e0c4;
	display: flex;
	align-items: center;
	justify-content: center;
	font-family: 'InterVariable', Georgia, serif;
	font-size: 48px;
}
.ns-year-dog-name {
	font-weight: bold;
	font-size: 14px;
	padding: 10px 12px 2px;
}
.ns-year-dog-call {
	font-size: 12px;
	color: #6b7c93;
	font-style: italic;
	padding: 0 12px 10px;
}

/* Visually distinguish the "All" tab a bit */
.ns-year-tab[data-year="all"] { padding-left: 26px; padding-right: 26px; }
.ns-year-dog-meta {
	font-size: 12px;
	color: #6b7c93;
	padding: 0 12px 10px;
}

/* Homepage Swiper slider. Container is sized to a fixed band; the
   slide images crop with object-fit: cover so any aspect ratio fits.
   !important on slide+image sizing because Swiper's own CSS (loaded
   after style.css) has rules like `.swiper-slide{height:auto}` that
   we need to beat on every viewport. */
.home-swiper {
	width: 100% !important;
	max-width: 100% !important;
	aspect-ratio: 12 / 5;
	min-height: 200px;
	max-height: 460px;
	overflow: hidden;
	border-radius: 2px;
	background: #1f2933;
	box-sizing: border-box;
}
.home-swiper .swiper-wrapper { height: 100% !important; }
.home-swiper .swiper-slide {
	width: 100% !important;
	height: 100% !important;
	box-sizing: border-box;
}
.home-swiper .swiper-slide img {
	width: 100% !important;
	height: 100% !important;
	object-fit: cover;
	display: block;
	max-width: none !important; /* defeat the global mobile img max-width */
}

/* Welcome copy block. Heading + lede are centered; body paragraphs
   read left-aligned in a ~720px column for normal prose readability. */
.home-welcome { padding: 14px 20px 16px; }
#intro.home-welcome { border-bottom: 0; }
.home-welcome h2 {
	font-family: 'Allura', cursive;
	font-weight: 400;
	/* scale with the viewport; wrap rather than run off the edge on phones */
	font-size: clamp(30px, 7vw, 62px);
	margin: 0 0 38px;
	color: #1f5132;
	text-align: center;
	line-height: 1.15;
	overflow-wrap: break-word;
}
.home-welcome .lede {
	font-size: 18px;
	color: #1f2933;
	margin: 0 auto 22px;
	max-width: 720px;
	font-style: italic;
	text-align: center;
}
.home-welcome p {
	max-width: 720px;
	margin: 0 auto 14px;
	line-height: 1.65;
	text-align: left;
}
.home-welcome p:last-child { margin-bottom: 0; }

/* Featured event row */
.home-event { padding: 20px; align-items: center; }
.home-event-photo img {
	width: 100%;
	height: 180px;
	object-fit: cover;
	display: block;
	border-radius: 2px;
}
.home-event-text { padding-left: 20px; }
.home-event-text .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.home-event-text h4 {
	font-size: 22px;
	margin: 0 0 6px;
	color: #1f2933;
}

/* 404 page */
.not-found {
	padding: 0 0 28px;
}
.not-found-hero {
	text-align: center;
	margin: 0 0 28px;
}
.not-found-hero img {
	width: 100%;
	max-width: 600px;
	height: auto;
	border-radius: 3px;
	display: inline-block;
}
.not-found-text {
	text-align: center;
	margin: 0 0 28px;
}
.not-found-text h1 {
	font-size: 110px;
	line-height: 1;
	margin: 0 0 8px;
	color: #1f5132;
	letter-spacing: -0.03em;
}
.not-found-tag {
	font-size: 24px;
	font-style: italic;
	color: #1f2933;
	margin: 0;
}
.not-found-help {
	margin: 0;
	padding: 18px 22px;
	background: #edeef1;
	border-radius: 3px;
	font-size: 15px;
	line-height: 1.55;
	text-align: center;
}
@media (max-width: 760px) {
	.not-found-text h1 { font-size: 72px; }
}

/* Base styles for top-level nav <a> and <button.nav-parent> live near the
   top of this file in the combined `.jqueryslidemenu ul li > a, ...` rule
   so the two element types match exactly. Only state + mobile differ here. */
.jqueryslidemenu ul li button.nav-parent:hover {
	color: #000;
}
.jqueryslidemenu ul li button.nav-parent:focus {
	outline: 2px solid #1f5132;
	outline-offset: -2px;
}
@media (max-width: 959px) {
	.jqueryslidemenu ul li button.nav-parent {
		padding: 12px 15px;
		width: 100%;
		text-align: left;
		font-size: 14px;
	}
}

/* Admin-mode indicator. Shown only when an admin is browsing inside /admin/.
   Makes it obvious the user has stepped into administrative context. */
.admin-mode-banner {
	background: #f0f3f7;
	border: 1px solid #d4a04c;
	color: #8a5a16;
	padding: 8px 16px;
	margin: 0 0 14px;
	font-size: 13px;
	border-radius: 3px;
}
.admin-mode-banner a {
	color: #1f5132;
	font-weight: 600;
}
nav a.admin-mode {
	background: #f0f3f7;
	color: #8a5a16 !important;
}

/* Roster list (officers / directors / committees). Replaces the older
   .contact-grid card layout with a tighter single-column list - title,
   name, optional email-reveal button on one row each. */
.roster-h {
	margin: 28px 0 10px;
	font-size: 18px;
	color: #1f5132;
	font-weight: 700;
}
.roster-h:first-of-type { margin-top: 0; }
/* Legacy .roster-list / .roster-list li rules removed 2026-05-19; they
   conflicted with the newer tile-grid layout below (lines ~6083+) and
   made the members roster look broken. New rules are authoritative. */
.roster-title {
	color: #1f5132;
	font-weight: 600;
	font-size: 13px;
	letter-spacing: .02em;
}
.roster-name {
	color: #1f2933;
}
.roster-email {
	justify-self: end;
}
button.roster-email {
	background: transparent;
	border: 0;
	color: #1f5132;
	font-size: 12px;
	font-family: inherit;
	cursor: pointer;
	padding: 4px 10px;
	border: 1px solid #1f5132;
	border-radius: 3px;
	white-space: nowrap;
}
button.roster-email:hover {
	background: #1f5132;
	color: #fff;
}
@media (max-width: 600px) {
	.roster-list li {
		grid-template-columns: 1fr;
		gap: 4px;
		padding: 12px 16px;
	}
	.roster-email { justify-self: start; margin-top: 4px; }
}

/* Officer + committee contact tiles. Toned-down boxes: subtle background
   tint with a hairline border and no accent stripe. */
.contact-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(210px, 1fr));
	gap: 10px;
	margin-bottom: 22px;
}
.contact-card {
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 10px 14px;
}
.contact-position {
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: 700;
	margin-bottom: 2px;
	line-height: 1.3;
}
.contact-name {
	font-size: 14px;
	font-weight: 600;
	color: #1f2933;
	margin-bottom: 4px;
}
.contact-email {
	display: inline-block;
	font-size: 12px;
	color: #1f5132;
	text-decoration: none;
	border-bottom: 1px dotted #1f5132;
	cursor: pointer;
}
.contact-email:hover {
	color: #143a23;
	border-bottom-style: solid;
}
/* Reveal-email button on contact cards: match the .contact-email link look
   (border-bottom dotted, green text), not the underlined button used on
   the breeder directory. The button is a button so it can replace itself
   with a plain mailto link on click without triggering Brave's mail-handler. */
button.reveal-email.contact-email {
	background: transparent;
	border: none;
	border-bottom: 1px dotted #1f5132;
	border-radius: 0;
	padding: 0;
	font-family: inherit;
	text-decoration: none;
}
button.reveal-email.contact-email:hover {
	border-bottom-style: solid;
	color: #143a23;
}
/* Revealed email (after click-to-copy). Shown as plain text - intentionally
   NOT a mailto: link so browsers like Brave don't try to hand off to Chrome.
   On mobile, users can long-press for OS share/send/copy options. */
.email-revealed-addr {
	display: inline-block;
	font-size: 12px;
	color: #1f5132;
	word-break: break-all;
	user-select: all;
}
/* Legacy toast styles below are no longer triggered by main.js; kept here
   harmlessly while we wait for the production cutover, will trim later. */
.email-copied-toast {
	display: inline-block;
	font-size: 10px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #fff;
	background: #1f5132;
	padding: 2px 6px;
	border-radius: 3px;
	opacity: 0;
	transform: translateY(-2px);
	transition: opacity .2s, transform .2s;
	pointer-events: none;
}
.email-copied-toast.is-visible {
	opacity: 1;
	transform: translateY(0);
}

/* Publications - alternating feature rows */
.publication {
	display: grid;
	grid-template-columns: 280px 1fr;
	gap: 32px;
	align-items: center;
	padding: 32px 0;
	border-bottom: 1px solid #d0d3d8;
}
.publication:first-of-type { padding-top: 0; }
.publication:last-of-type { border-bottom: 0; padding-bottom: 0; }
.publication-flip { grid-template-columns: 1fr 280px; }
.publication-cover {
	background: #edeef1;
	padding: 18px;
	border-radius: 3px;
	display: flex;
	align-items: center;
	justify-content: center;
}
.publication-cover img {
	max-width: 100%;
	max-height: 320px;
	width: auto;
	height: auto;
	display: block;
	box-shadow: 0 8px 24px rgba(31, 41, 51, 0.18);
}
.publication-cover-small img {
	max-height: 220px;
	box-shadow: none;
}
.publication-body .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.publication-body h3 {
	font-size: 28px;
	margin: 0 0 14px;
	color: #1f2933;
}
.publication-body p {
	font-size: 15px;
	line-height: 1.65;
	margin: 0 0 12px;
}
.publication-body .button { margin-right: 6px; }
.button.ghost {
	background: transparent;
	color: #1f5132;
	border: 1px solid #1f5132;
}
.button.ghost:hover {
	background: #1f5132;
	color: #fff;
}
.button.is-soon,
.button.is-soon:hover {
	background: #eef0f2;
	color: #6b7c93;
	border: 1.5px solid #d0d3d8;
	cursor: not-allowed;
	box-shadow: none;
}

/* Further reading section */
.publication-further { padding-top: 24px; }
.publication-further h3 {
	font-size: 16px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #1f5132;
	margin-bottom: 18px;
}
.further-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 360px));
	gap: 18px;
}
.further-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 18px;
}
.further-card img {
	max-width: 140px;
	height: auto;
	display: block;
	margin-bottom: 12px;
	box-shadow: 0 4px 12px rgba(31, 41, 51, 0.14);
}
.further-card h4 {
	margin: 0 0 2px;
	font-size: 18px;
}
.further-author {
	margin: 0 0 8px !important;
	color: #6b7c93;
	font-style: italic;
	font-size: 13px;
}

@media (max-width: 720px) {
	.publication, .publication-flip {
		grid-template-columns: 1fr;
		gap: 18px;
	}
	.publication-flip > .publication-cover { order: -1; }
	.publication-body h3 { font-size: 22px; }
}

/* Publication cover variant for non-book photos */
.publication-cover.publication-cover-photo {
	background: transparent;
	padding: 0;
}
.publication-cover.publication-cover-photo img {
	box-shadow: none;
	max-height: 280px;
	width: 100%;
	height: 100%;
	object-fit: cover;
	border-radius: 3px;
}

/* Join BCOA page */
.join-section-h {
	font-size: 22px;
	margin: 36px 0 16px;
	color: #1f2933;
}
#content > .join-section-h:first-child { margin-top: 8px; }
.join-benefits {
	background: #edeef1;
	border-left: 4px solid #1f5132;
	padding: 22px 26px;
	border-radius: 0 3px 3px 0;
	margin-top: 8px;
}
.join-benefits h3 {
	margin: 0 0 10px;
	font-size: 18px;
	color: #1f5132;
	text-transform: uppercase;
	letter-spacing: .08em;
}
.join-benefits ul {
	margin: 0;
	padding-left: 22px;
}
.join-benefits li {
	margin: 6px 0;
	font-size: 15px;
	line-height: 1.55;
}
.member-types {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
}
.member-type {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-top: 4px solid #1f5132;
	padding: 16px 16px 18px;
	border-radius: 3px;
	display: flex;
	flex-direction: column;
}
.member-types-note {
	font-size: 12px;
	color: #6b7c93;
	font-style: italic;
	margin: 10px 0 0;
}
.member-type .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.member-type h4 {
	margin: 0 0 8px;
	font-size: 19px;
	color: #1f2933;
}
.member-type p {
	font-size: 13px;
	line-height: 1.5;
	margin: 0 0 10px;
}
.member-type .member-note {
	font-size: 12px;
	color: #6b7c93;
	font-style: italic;
	margin-top: 4px;
}
.member-type dl.dues {
	margin: 4px 0 8px;
	border-top: 1px solid #d0d3d8;
	padding-top: 10px;
}
.member-type dl.dues > div {
	display: flex;
	justify-content: space-between;
	gap: 10px;
	padding: 4px 0;
	font-size: 13px;
	border-bottom: 1px dotted #d0d3d8;
}
.member-type dl.dues > div:last-child { border-bottom: 0; }
.member-type dl.dues dt {
	margin: 0;
	color: #1f2933;
	flex: 1;
}
.member-type dl.dues dd {
	margin: 0;
	font-weight: 600;
	color: #1f5132;
	white-space: nowrap;
}
.join-steps {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	gap: 14px;
}
.join-steps li {
	display: grid;
	grid-template-columns: 44px 1fr;
	gap: 16px;
	align-items: start;
	background: #fff;
	border: 1px solid #d0d3d8;
	padding: 16px 18px;
	border-radius: 3px;
}
.join-steps .step-n {
	width: 32px;
	height: 32px;
	border-radius: 50%;
	background: #1f5132;
	color: #fff;
	font-weight: 700;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 15px;
}
.join-steps strong {
	display: block;
	font-size: 16px;
	color: #1f2933;
	margin-bottom: 4px;
}
.join-steps p {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
	color: #4a5664;
}
.doc-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 14px;
}
.doc-card {
	display: grid;
	grid-template-columns: 56px 1fr;
	gap: 14px;
	align-items: start;
	background: #fff;
	border: 1px solid #d0d3d8;
	padding: 16px 18px;
	border-radius: 3px;
	text-decoration: none;
	color: inherit;
	transition: border-color .15s, box-shadow .15s;
}
.doc-card:hover {
	border-color: #1f5132;
	box-shadow: 0 4px 12px rgba(31, 81, 50, 0.10);
}
.doc-icon {
	width: 56px;
	height: 56px;
	border-radius: 3px;
	background: #1f5132;
	color: #fff;
	font-weight: 700;
	font-size: 13px;
	letter-spacing: .05em;
	display: flex;
	align-items: center;
	justify-content: center;
}
.doc-card strong {
	display: block;
	font-size: 15px;
	color: #1f2933;
	margin-bottom: 4px;
}
.doc-card p {
	margin: 0;
	font-size: 13px;
	line-height: 1.5;
	color: #4a5664;
}
.join-twoup {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 28px;
}
.join-twoup .join-section-h { margin-top: 18px; }
.join-half p { font-size: 15px; line-height: 1.6; }
.join-questions {
	margin-top: 32px;
	padding: 16px 20px;
	background: #edeef1;
	border-radius: 3px;
	font-size: 14px;
}
.join-questions .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.join-questions p { margin: 0; line-height: 1.55; }

.join-steps-box {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	padding: 20px 24px;
}
.join-steps-compact {
	margin: 0;
	padding-left: 22px;
}
.join-steps-compact li {
	margin: 8px 0;
	font-size: 15px;
	line-height: 1.55;
}
.join-steps-compact li:first-child { margin-top: 0; }
.join-steps-compact li:last-child { margin-bottom: 0; }
.join-action-grid {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 18px;
}
.join-action-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	padding: 18px 20px;
}
.join-action-card h4 {
	margin: 0 0 8px;
	font-size: 18px;
	color: #1f2933;
}
.join-action-card p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.55;
	color: #4a5664;
}
.join-action-card p:last-child { margin-bottom: 0; }
.join-action-buttons {
	display: flex;
	gap: 8px;
}
.join-action-buttons > .button { flex: 1 1 0; min-width: 0; text-align: center; }
.soon-note { margin: 5px 0 0; font-size: 12px; color: #6b7c93; }
@media (max-width: 940px) {
	.member-types { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 720px) {
	.join-twoup { grid-template-columns: 1fr; }
	.member-types { grid-template-columns: 1fr; }
	.join-steps li { grid-template-columns: 36px 1fr; gap: 12px; padding: 14px; }
	.join-steps .step-n { width: 28px; height: 28px; font-size: 13px; }
	.join-action-grid { grid-template-columns: 1fr; }
}

/* Versatile Basenji Program */

/* Collapsible wrapper around the long descriptive sections that now sit
   BELOW the honor roll. Open them when someone wants the rules; otherwise
   keep the page short and focused on the dogs. */
.vbp-collapse {
	margin: 0 0 14px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
}
.vbp-collapse > summary {
	cursor: pointer;
	padding: 14px 18px;
	background: #fff;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	list-style: none;
	display: flex;
	align-items: baseline;
	gap: 14px;
}
.vbp-collapse > summary::-webkit-details-marker { display: none; }
.vbp-collapse > summary::after {
	content: "+";
	margin-left: auto;
	color: #1f5132;
	font-weight: bold;
	font-size: 20px;
	line-height: 1;
}
.vbp-collapse[open] > summary::after { content: "\2212"; }
.vbp-collapse-label {
	font-family: 'InterVariable', Arial, sans-serif;
	font-size: 20px;
	font-weight: bold;
	color: #1f5132;
}
.vbp-collapse-hint {
	font-size: 12px;
	color: #6b7c93;
	text-transform: uppercase;
	letter-spacing: .06em;
}
.vbp-collapse-body {
	padding: 18px;
	border-top: 1px solid #d0d3d8;
}
.vbp-collapse-body > p:first-child { margin-top: 0; }
.vbp-collapse-body > p:last-child { margin-bottom: 0; }

.vbp-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	margin: 0 0 24px;
	padding: 12px 14px;
	background: #edeef1;
	border-radius: 3px;
	font-size: 13px;
}
.vbp-jump a {
	color: #1f5132;
	text-decoration: none;
	padding: 4px 10px;
	border-radius: 3px;
}
.vbp-jump a:hover { background: #1f5132; color: #fff; }
.vbp-h4 { margin: 18px 0 12px; font-size: 16px; color: #1f2933; }
.vbp-titles-legend {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 14px;
}
.vbp-title-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-top: 4px solid #6b7c93;
	border-radius: 3px;
	padding: 14px 16px;
}
.vbp-title-id {
	display: inline-block;
	font-weight: 700;
	font-size: 14px;
	padding: 4px 10px;
	border-radius: 3px;
	letter-spacing: .04em;
	margin-bottom: 8px;
}
.vbp-title-meta strong {
	display: block;
	font-size: 15px;
	color: #1f2933;
	margin-bottom: 6px;
}
.vbp-title-opt {
	margin: 4px 0 0;
	font-size: 12px;
	line-height: 1.4;
	color: #4a5664;
}
.vbp-title-opt-label {
	font-weight: 600;
	color: #1f5132;
}
.vbp-categories {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(220px, 1fr));
	gap: 8px;
}
.vbp-cat {
	background: #fff;
	border: 1px solid #d0d3d8;
	padding: 10px 14px;
	border-radius: 3px;
	font-size: 13px;
}
.vbp-contact {
	margin: 14px 0 0;
	font-size: 14px;
	font-style: italic;
}
.vbp-contact a { color: #1f5132; cursor: pointer; }

/* FAQ accordion using native <details> */
.vbp-faq details {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	margin-bottom: 8px;
	padding: 0 16px;
}
.vbp-faq summary {
	padding: 12px 0;
	font-weight: 600;
	cursor: pointer;
	color: #1f2933;
	font-size: 14px;
	list-style: none;
}
.vbp-faq summary::-webkit-details-marker { display: none; }
.vbp-faq summary::before {
	content: "+";
	display: inline-block;
	width: 22px;
	color: #1f5132;
	font-size: 18px;
	font-weight: 700;
}
.vbp-faq details[open] summary::before { content: "−"; }
.vbp-faq details p {
	margin: 0 0 12px 22px;
	font-size: 14px;
	line-height: 1.6;
	color: #4a5664;
}

/* Flat tab strip - unified for VBP, Honor Rolls, Activities, Affiliated Clubs, Find a Breeder.
   Visual model is the NSP "The Dogs" tab (.ns-year-tab). Active class: .vbp-tab-active or .tab-active. */
.vbp-tabs, .tabs {
	display: flex;
	flex-wrap: wrap;
	gap: 0;
	margin: 14px 0 22px;
}
.vbp-tab, .tab {
	appearance: none;
	background: transparent;
	border: 0;
	border-bottom: 2px solid #1f5132;
	padding: 10px 14px;
	color: #1f5132;
	font-family: inherit;
	font-size: 14px;
	font-weight: bold;
	cursor: pointer;
}
.vbp-tab:hover, .tab:hover {
	background: #edeef1;
}
.vbp-tab-active, .tab-active,
.vbp-tab-active:hover, .tab-active:hover {
	background: #1f5132;
	color: #fff;
}
.vbp-tab:focus-visible, .tab:focus-visible {
	outline: 2px solid #1f5132;
	outline-offset: 2px;
}
.vbp-tabpanel[hidden], .tabpanel[hidden] { display: none; }
@media (max-width: 480px) {
	.vbp-tab, .tab { flex: 1 1 50%; text-align: center; padding: 10px 8px; font-size: 14px; }
}

/* per-section hero banner used inside tabpanels */
.activity-hero {
	width: 100%;
	height: 320px;
	overflow: hidden;
	background: #1f2933;
	border-radius: 4px;
	margin: 0 0 22px;
	position: relative;
}
.activity-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
@media (max-width: 768px) { .activity-hero { height: 240px; } }
@media (max-width: 480px) { .activity-hero { height: 180px; } }

/* Honor Roll controls */
.vbp-roll-count { color: #4a5664; font-size: 14px; margin: 0 0 16px; }
.vbp-controls {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 12px;
	align-items: center;
	margin-bottom: 18px;
	background: #edeef1;
	padding: 14px;
	border-radius: 3px;
}
.vbp-search {
	width: 100%;
	min-width: 0;
}
.vbp-search, .vbp-filter {
	padding: 8px 12px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
	font-size: 14px;
	font-family: inherit;
	color: #1f2933;
}
.vbp-search:focus, .vbp-filter:focus { outline: 2px solid #1f5132; outline-offset: 1px; }
.vbp-group {
	display: flex;
	align-items: center;
	gap: 4px;
}
.vbp-group-label {
	font-size: 12px;
	color: #4a5664;
	margin-right: 4px;
}
.vbp-group-btn {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 7px 10px;
	font-size: 13px;
	font-family: inherit;
	color: #1f2933;
	cursor: pointer;
}
.vbp-group-btn.active {
	background: #1f5132;
	color: #fff;
	border-color: #1f5132;
}

.vbp-empty {
	text-align: center;
	padding: 32px;
	color: #6b7c93;
	font-style: italic;
}

/* Dog tile grid. The MUI ImageListItemBar pattern from the original React
   app: photo fills the card, a semi-transparent dark bar overlays the bottom
   of the photo with the call name + registered name on the left and the
   patriotic-ribbon award badge on the right. Owner info sits below in a
   small white meta strip. */
.vbp-dogs {
	display: block;
}
.vbp-year-d {
	margin: 0 0 14px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
}
.vbp-year-d > summary {
	cursor: pointer;
	padding: 14px 18px;
	background: #fff;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	list-style: none;
	display: flex;
	align-items: baseline;
	gap: 14px;
}
.vbp-year-d > summary::-webkit-details-marker { display: none; }
.vbp-year-d > summary::after {
	content: "+";
	margin-left: auto;
	color: #1f5132;
	font-weight: bold;
	font-size: 20px;
	line-height: 1;
}
.vbp-year-d[open] > summary::after { content: "\2212"; }
.vbp-year-label {
	font-family: 'InterVariable', Arial, sans-serif;
	font-size: 22px;
	font-weight: bold;
	color: #1f5132;
}
.vbp-year-count {
	font-size: 12px;
	color: #6b7c93;
	text-transform: uppercase;
	letter-spacing: .06em;
}
.vbp-year-grid {
	padding: 14px 18px 18px;
	border-top: 1px solid #d0d3d8;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 14px;
}
.vbp-group-header {
	grid-column: 1 / -1;
	background: #1f5132;
	color: #fff;
	padding: 10px 16px;
	margin: 18px 0 4px;
	border-radius: 3px;
	font-weight: 700;
	font-size: 15px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.vbp-dog {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.vbp-dog-photo {
	position: relative;
	width: 100%;
	height: 240px;
	background: #d0d3d8 url("/img/legacy/bcoa/bblogo.png") center/100px no-repeat;
	overflow: hidden;
}
.vbp-dog-photo.vbp-no-photo {
	display: flex;
	align-items: center;
	justify-content: center;
}
.vbp-dog-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
/* Bottom-overlay bar (the MUI ImageListItemBar equivalent) */
.vbp-dog-bar {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	background: linear-gradient(to top, rgba(0,0,0,0.78) 0%, rgba(0,0,0,0.6) 60%, rgba(0,0,0,0) 100%);
	color: #fff;
	display: flex;
	align-items: flex-end;
	gap: 8px;
	padding: 36px 10px 10px 14px;
	min-height: 80px;
}
.vbp-dog-bar-text {
	flex: 1;
	min-width: 0;
}
.vbp-dog-call {
	margin: 0 0 2px;
	font-size: 22px;
	font-weight: 700;
	color: #fff;
	line-height: 1.15;
	text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
}
.vbp-dog-bar-reg {
	font-size: 11px;
	color: rgba(255, 255, 255, 0.88);
	line-height: 1.3;
	word-wrap: break-word;
	max-height: 42px;
	overflow: hidden;
}
.vbp-dog-meta { padding: 8px 14px 12px; }

/* Honor Roll dog profile - sample page at /preview/honor-sample/.
   Photo on the left, facts column on the right; reflows to single column
   below 720px. Toned-down archive note at the bottom keeps the original
   PDF accessible without overwhelming the modern presentation. */
.breadcrumbs {
	font-size: 12px;
	color: #555;
	margin-bottom: 8px;
}
.breadcrumbs a {
	color: #1f5132;
	text-decoration: none;
}
.breadcrumbs a:hover { text-decoration: underline; }
.breadcrumb-sep {
	margin: 0 6px;
	color: #aaa;
}
.dog-titles {
	color: #555;
	font-size: 14px;
	font-style: italic;
	margin: 4px 0 0;
}
.honor-profile {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 32px;
	margin: 16px 0 24px;
}
@media (max-width: 720px) {
	.honor-profile {
		grid-template-columns: 1fr;
	}
}
.honor-photo {
	margin: 0;
}
.honor-photo img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
}
.honor-photo figcaption {
	font-size: 12px;
	color: #777;
	margin-top: 6px;
}
.honor-facts {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
}
.honor-facts dt {
	font-size: 11px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: 700;
	margin-top: 10px;
}
.honor-facts dt:first-child { margin-top: 0; }
.honor-facts dd {
	margin: 2px 0 0;
	color: #1f2933;
}
.honor-archive-note {
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 12px 16px;
	margin: 20px 0;
	font-size: 13px;
	color: #444;
}
.honor-archive-note p { margin: 0 0 6px; }
.honor-archive-note p:last-child { margin-bottom: 0; }
.archive-link {
	display: inline-block;
	color: #1f5132;
	font-weight: 600;
	text-decoration: none;
	border-bottom: 1px dotted #1f5132;
	margin-top: 4px;
}
.archive-link:hover {
	border-bottom-style: solid;
	color: #143a23;
}
.back-link {
	font-size: 13px;
	margin-top: 20px;
}
.back-link a {
	color: #1f5132;
	text-decoration: none;
}
.back-link a:hover { text-decoration: underline; }

/* In-page jump-to nav under the intro on long single-page sections. */
.page-jump {
	font-size: 13px;
	color: #555;
	margin: 8px 0 0;
}
.page-jump a {
	color: #1f5132;
	text-decoration: none;
	border-bottom: 1px dotted #1f5132;
}
.page-jump a:hover { border-bottom-style: solid; }

/* Recommended testing strip on /basenji/health/. Forces 5 columns at
   desktop width so all 5 tests sit on one line; reflows on smaller
   screens. Each tile uses the same toned-down card chrome as the
   board/committee contact cards. */
.testing-grid {
	display: grid;
	grid-template-columns: repeat(5, 1fr);
	gap: 8px;
	margin-bottom: 22px;
}
@media (max-width: 820px) {
	.testing-grid { grid-template-columns: repeat(3, 1fr); }
}
@media (max-width: 560px) {
	.testing-grid { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 380px) {
	.testing-grid { grid-template-columns: 1fr; }
}
.testing-card {
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 10px 12px;
	display: flex;
	flex-direction: column;
}
.testing-card .form-hint {
	margin: 4px 0 8px;
	font-size: 12px;
	line-height: 1.4;
	flex: 1;
}
.testing-card .contact-email {
	font-size: 12px;
	white-space: nowrap;
}

/* Body content inside an honor-entry expand for a long-form condition or
   FAQ. Standalone block (does not inherit the dog-profile grid).
   Single text column, comfortable line length. */
.health-detail {
	display: block;
	padding: 16px 20px 18px;
	background: #f7f8fa;
	font-size: 14px;
	line-height: 1.6;
}
.health-detail > * { max-width: 720px; }

/* Glossary and timeline definition lists. The dt is the term or date
   (small, green, uppercase); the dd carries the body. */
.glossary-list,
.timeline-list {
	margin: 0;
	max-width: 720px;
}
.glossary-list dt,
.timeline-list dt {
	font-size: 12px;
	letter-spacing: .04em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: 700;
	margin-top: 14px;
}
.glossary-list dt:first-child,
.timeline-list dt:first-child { margin-top: 0; }
.glossary-list dd,
.timeline-list dd {
	margin: 2px 0 0;
	color: #1f2933;
}

/* Full-width hero photo at the top of an activity / topic page. Wide
   letterbox aspect; reflows naturally on narrow screens. */
.activity-hero {
	margin: 12px 0 18px;
}
.activity-hero img {
	display: block;
	width: 100%;
	height: auto;
	border-radius: 3px;
	box-shadow: 0 2px 8px rgba(31, 41, 51, 0.12);
}
.health-detail p { margin: 0 0 10px; }
.health-detail p:last-child { margin-bottom: 0; }
.health-detail h4 {
	margin: 16px 0 6px;
	font-size: 15px;
	color: #1f5132;
}
.health-detail h5 {
	margin: 14px 0 4px;
	font-size: 13px;
	color: #1f5132;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.health-detail ul {
	margin: 0 0 10px;
	padding-left: 22px;
}
.health-detail li { margin-bottom: 4px; }

/* BCOA Health Statement block - authoritative call-out style. */
.health-statement {
	background: #edeef1;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	padding: 16px 22px;
	margin: 8px 0 24px;
}
.health-statement p { margin: 0 0 10px; }
.health-statement p:last-child { margin-bottom: 0; }

/* Expand-in-place Honor Roll list. Each <details> row shows just the
   dog name + meta when collapsed; click to expand into the full profile
   (photo + facts + archive link). URL hash anchors auto-open the target
   row so individual dogs are shareable as deep links. */
.honor-list {
	list-style: none;
	margin: 0 0 28px;
	padding: 0;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	overflow: hidden;
	background: #fff;
}
.honor-list > li {
	border-bottom: 1px solid #d0d3d8;
	margin: 0;
	padding: 0;
	transition: background-color .12s;
}
.honor-list > li:last-child { border-bottom: 0; }
/* Whole-row highlights live on the <li> so the tint covers the full bar
   even where <details> default margins or the summary border leave gaps. */
.honor-list > li:hover,
.honor-list > li:has(details[open]) {
	background: #edeef1;
}
.honor-list > li:target {
	background: #fff8e1;
}
.honor-entry {
	margin: 0;
	padding: 0;
	background: transparent;
}
.honor-entry > summary {
	list-style: none;
	cursor: pointer;
	padding: 12px 18px;
	display: block;
	background: transparent;
}
.honor-entry > summary::-webkit-details-marker { display: none; }
.honor-entry[open] > summary {
	border-bottom: 1px solid #d0d3d8;
}
.honor-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 16px;
	align-items: baseline;
}
.honor-row-name {
	font-size: 15px;
	font-weight: 600;
	color: #1f2933;
}
.honor-row-name::before {
	content: '+';
	display: inline-block;
	width: 12px;
	color: #1f5132;
	font-weight: 700;
	margin-right: 8px;
}
.honor-entry[open] .honor-row-name::before {
	content: '\2212';
}
.honor-row-meta {
	font-size: 12px;
	color: #777;
	white-space: nowrap;
}
.honor-entry-body {
	display: grid;
	grid-template-columns: 260px 1fr;
	gap: 24px;
	padding: 16px 18px 18px;
	background: #f7f8fa;
}
@media (max-width: 720px) {
	.honor-entry-body {
		grid-template-columns: 1fr;
		gap: 14px;
	}
	.honor-row {
		grid-template-columns: 1fr;
		gap: 2px;
	}
}
.honor-entry-body .honor-photo {
	margin: 0;
}
.honor-entry-body .honor-photo img {
	display: block;
	width: 100%;
	height: auto;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
}
.honor-entry-body .honor-photo figcaption {
	font-size: 11px;
	color: #777;
	margin-top: 4px;
}
.honor-entry-footer {
	grid-column: 1 / -1;
	margin: 10px 0 0;
	padding-top: 10px;
	border-top: 1px solid #d0d3d8;
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	font-size: 12px;
}
.honor-permalink {
	color: #777;
	text-decoration: none;
	font-size: 11px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.honor-permalink:hover {
	color: #1f5132;
	text-decoration: underline;
}

/* Service-ribbon style award badge. Matches the original React TitleAvatar:
   navy / white / red stripes cross the full ribbon width and the colored
   medal sits centered on top, leaving thin horizontal bands of stripe
   visible above and below the medal (not flanking left/right). */
.vbp-ribbon {
	position: relative;
	width: 60px;
	height: 60px;
	flex-shrink: 0;
	background:
		linear-gradient(to right,
			transparent 0,
			transparent 15px,
			#002060 15px, #002060 25px,
			#ffffff 25px, #ffffff 35px,
			#820000 35px, #820000 45px,
			transparent 45px);
}
.vbp-medal {
	position: absolute;
	left: 50%;
	top: 50%;
	transform: translate(-50%, -50%);
	width: 60px;
	height: 40px;
	border-radius: 50%;
	border: 2px solid #fff;
	box-shadow: 0 1px 4px rgba(0, 0, 0, 0.3), 0 2px 10px rgba(0, 0, 0, 0.2);
	display: flex;
	flex-direction: column;
	align-items: center;
	justify-content: center;
	line-height: 1;
}
.vbp-medal-id {
	display: block;
	font-size: 14px;
	font-weight: 700;
}
.vbp-medal-year {
	display: block;
	font-size: 10px;
	line-height: 1;
}
.vbp-dog-prefix { color: rgba(255, 255, 255, 0.95); }
.vbp-dog-suffix { color: rgba(255, 255, 255, 0.75); }
.vbp-dog-owner {
	margin: 0;
	font-size: 12px;
	font-style: italic;
	color: rgba(255, 255, 255, 0.7);
	line-height: 1.1;
}

@media (max-width: 720px) {
	.vbp-controls {
		grid-template-columns: 1fr;
	}
	.vbp-group {
		flex-wrap: wrap;
	}
	.vbp-year-grid {
		grid-template-columns: 1fr 1fr;
	}
	.vbp-dog-photo { height: 220px; }
	.vbp-dog-call { font-size: 18px; }
}
@media (max-width: 480px) {
	.vbp-year-grid { grid-template-columns: 1fr; }
	.vbp-dog-photo { height: 240px; }
}

/* Article body typography baseline
   Applies to migrated Joomla content rendered by article.njk so it reads
   cleanly without the inline-style noise (CKEditor font/color overrides,
   MsoNormal/MsoNoSpacing classes, etc.). Selectors are tight enough to
   override most inline style="..." declarations on the migrated tags. */
.article-body {
	font-size: 15px;
	line-height: 1.65;
	color: #1f2933;
	max-width: 900px;
}
.article-body p,
.article-body li,
.article-body td,
.article-body th,
.article-body blockquote,
.article-body div,
.article-body span,
.article-body address {
	font-family: inherit !important;
	color: #1f2933 !important;
	font-size: 15px !important;
	line-height: 1.65 !important;
	letter-spacing: normal !important;
	word-spacing: normal !important;
	background: transparent !important;
}
.article-body h1,
.article-body h2,
.article-body h3,
.article-body h4,
.article-body h5,
.article-body h6 {
	font-family: inherit !important;
	color: #1f2933 !important;
	background: transparent !important;
	margin: 28px 0 12px;
	line-height: 1.25;
	letter-spacing: normal !important;
}
.article-body h1 {
	display: none;
}
.article-body h2 {
	font-size: 22px;
	font-weight: 700;
	padding-bottom: 6px;
	border-bottom: 2px solid #1f5132;
	color: #1f5132 !important;
}
.article-body h3 {
	font-size: 18px;
	font-weight: 600;
	color: #1f5132 !important;
}
.article-body h4 {
	font-size: 16px;
	font-weight: 600;
}
.article-body h5,
.article-body h6 {
	font-size: 13px;
	font-weight: 600;
	color: #6b7c93 !important;
	text-transform: uppercase;
	letter-spacing: .06em !important;
}
.article-body p {
	margin: 0 0 14px;
}
.article-body ul,
.article-body ol {
	margin: 0 0 16px;
	padding-left: 24px;
}
.article-body li { margin: 4px 0; }
.article-body a {
	color: #1f5132;
	text-decoration: underline;
}
.article-body a:hover { color: #143a23; }
.article-body img {
	max-width: 100%;
	height: auto;
	border-radius: 3px;
}
.article-body img.pull-right,
.article-body img.float-right,
.article-body img[style*="float: right"],
.article-body img[style*="float:right"] {
	float: right;
	margin: 4px 0 16px 24px;
	max-width: 320px;
}
.article-body img.pull-left,
.article-body img.float-left,
.article-body img[style*="float: left"],
.article-body img[style*="float:left"] {
	float: left;
	margin: 4px 24px 16px 0;
	max-width: 320px;
}
.article-body hr {
	border: 0;
	border-top: 1px solid #d0d3d8;
	margin: 24px 0;
}
.article-body blockquote {
	margin: 16px 0;
	padding: 14px 18px;
	background: #edeef1;
	border-left: 4px solid #1f5132;
	font-style: italic;
	border-radius: 0 3px 3px 0;
}
.article-body table {
	width: 100%;
	border-collapse: collapse;
	margin: 16px 0;
}
.article-body table th,
.article-body table td {
	padding: 8px 10px;
	border: 1px solid #d0d3d8;
	text-align: left;
	vertical-align: top;
}
.article-body table th {
	background: #edeef1;
	color: #1f5132 !important;
	font-weight: 600;
}
/* Suppress the worst Joomla CKEditor padding indents */
.article-body p[style*="padding-left"],
.article-body p[style*="padding-left:"] {
	padding-left: 0 !important;
}
.article-body p[style*="text-align: center"],
.article-body h2[style*="text-align: center"],
.article-body h3[style*="text-align: center"] {
	text-align: center !important;
}
/* Container-article / art-img / art-ttl wrappers from the Joomla source -
   convert to a clean side-by-side when wide, stacked when narrow */
.article-body .container-article {
	display: grid;
	grid-template-columns: minmax(160px, 280px) 1fr;
	gap: 24px;
	align-items: start;
	margin: 16px 0 20px;
}
.article-body .container-article .art-img img {
	width: 100%;
	max-width: 100%;
	height: auto;
}
@media (max-width: 720px) {
	.article-body .container-article {
		grid-template-columns: 1fr;
	}
	.article-body img.pull-right,
	.article-body img.pull-left,
	.article-body img[style*="float: right"],
	.article-body img[style*="float: left"] {
		float: none;
		display: block;
		margin: 12px auto;
		max-width: 100%;
	}
}
/* Back-to-top anchor list pattern used on screening-breeders */
.article-body h6 a[href^="#"] {
	display: inline-block;
	font-size: 11px;
	color: #6b7c93 !important;
	text-decoration: none;
	letter-spacing: .04em;
	margin-top: -4px;
}
.article-body h6 a[href^="#"]:before { content: "↑ "; }

/* Members portal: admin + auth pages */
.auth-form {
	max-width: 420px;
	margin: 0;
	padding: 24px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
}
.auth-form label {
	display: block;
	margin: 14px 0 4px;
	font-size: 13px;
	font-weight: 600;
	color: #1f2933;
}
.auth-form input[type="email"],
.auth-form input[type="password"],
.auth-form input[type="text"] {
	width: 100%;
	box-sizing: border-box;
	padding: 10px 12px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	font-size: 15px;
	font-family: inherit;
	background: #fff;
	color: #1f2933;
}
.auth-form input:focus { outline: 2px solid #1f5132; outline-offset: 1px; }
.auth-form .button { margin-top: 16px; }
.auth-form .auth-help {
	font-size: 12px;
	color: #6b7c93;
	margin: 4px 0 0;
}
.auth-form .auth-help.pw-ok { color: #2e7d32; }
.auth-form .auth-help.pw-bad { color: #c0392b; }
.auth-alert {
	background: #fde9e9;
	border-left: 4px solid #b8001f;
	padding: 10px 14px;
	margin-bottom: 14px;
	font-size: 14px;
	color: #6b1010;
	border-radius: 0 3px 3px 0;
}
.auth-success {
	background: #e8f3ec;
	border-left: 4px solid #1f5132;
	padding: 12px 16px;
	margin-bottom: 14px;
	border-radius: 0 3px 3px 0;
}
.auth-success p { margin: 0 0 6px; font-size: 14px; }
.auth-links {
	margin-top: 16px;
	font-size: 13px;
}
.auth-links a {
	color: #1f5132;
	text-decoration: underline;
}
.auth-alert-success {
	background: #e8f3ec;
	border-left-color: #1f5132;
	color: #143a23;
}
.auth-alert-error {
	background: #fde9e9;
	border-left-color: #b8001f;
	color: #6b1010;
}
.form-hint {
	font-size: 12px;
	color: #555;
	margin: 4px 0 0;
}
.visually-hidden {
	position: absolute !important;
	width: 1px; height: 1px;
	padding: 0; margin: -1px;
	overflow: hidden; clip: rect(0,0,0,0);
	white-space: nowrap; border: 0;
}

/* Admin 2FA nudge banner. Stretches across the page above main content. */
.totp-nudge-banner {
	background: #fff4d0;
	border: 1px solid #d6a700;
	border-radius: 3px;
	padding: 10px 16px;
	margin: 0 10px 16px;
	font-size: 14px;
	color: #5a4500;
}
.totp-nudge-banner strong { color: #3a2d00; }
.totp-nudge-banner a {
	color: #1f5132;
	text-decoration: underline;
	margin-left: 8px;
	font-weight: 600;
}

/* /members/security.php */
.security-panel {
	max-width: 640px;
	margin: 16px auto 32px;
	padding: 18px 22px;
	background: #fafafa;
	border: 1px solid #e4e4e4;
	border-radius: 4px;
}
.security-status {
	padding: 12px 14px;
	margin-bottom: 18px;
	border-radius: 3px;
	border-left: 4px solid;
}
.security-status h3 { margin: 0 0 4px; font-size: 16px; }
.security-status p { margin: 2px 0; font-size: 14px; }
.security-status-on {
	background: #e8f3ec;
	border-left-color: #1f5132;
}
.security-status-off {
	background: #fff4d0;
	border-left-color: #d6a700;
}
.security-section {
	margin: 12px 0;
	padding: 8px 12px;
	background: #fff;
	border: 1px solid #e4e4e4;
	border-radius: 3px;
}
.security-section summary {
	cursor: pointer;
	font-weight: 600;
	font-size: 14px;
	color: #1f5132;
	padding: 4px 0;
}
.security-section[open] summary {
	margin-bottom: 8px;
	border-bottom: 1px solid #e4e4e4;
	padding-bottom: 8px;
}
.security-section form {
	margin-top: 8px;
}
.security-section label {
	display: block;
	font-weight: 600;
	font-size: 13px;
	margin-bottom: 4px;
}
.security-section input[type="text"] {
	width: 200px;
	max-width: 100%;
	padding: 8px 10px;
	border: 1px solid #b0b0b0;
	border-radius: 3px;
	font-size: 16px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: .1em;
}
.security-section .button {
	margin-top: 10px;
}
.button-danger {
	background: #8a1414;
}
.button-danger:hover, .button-danger:focus {
	background: #6b1010;
}

.enroll-form {
	margin-top: 6px;
}
.enroll-steps {
	margin: 0;
	padding-left: 22px;
}
.enroll-steps > li {
	margin-bottom: 22px;
}
.enroll-steps h4 {
	margin: 0 0 6px;
	font-size: 15px;
}
.enroll-steps code.secret {
	display: inline-block;
	font-size: 16px;
	padding: 6px 10px;
	background: #f3f3f3;
	border: 1px solid #ddd;
	border-radius: 3px;
	letter-spacing: .08em;
	user-select: all;
}
.enroll-steps input[type="text"] {
	width: 200px;
	max-width: 100%;
	padding: 8px 10px;
	border: 1px solid #b0b0b0;
	border-radius: 3px;
	font-size: 18px;
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	letter-spacing: .15em;
}
.qr-box {
	display: inline-block;
	padding: 10px;
	background: #fff;
	border: 1px solid #d0d0d0;
	border-radius: 4px;
	min-width: 220px;
	min-height: 220px;
}
.qr-box svg { display: block; }

.recovery-codes {
	background: #fffbe6;
	border: 2px dashed #d6a700;
	padding: 14px 18px;
	margin-bottom: 18px;
	border-radius: 4px;
}
.recovery-codes h3 { margin-top: 0; font-size: 16px; }
.recovery-code-list {
	margin: 10px 0;
	padding-left: 22px;
	columns: 2;
	-webkit-columns: 2;
	column-gap: 24px;
}
.recovery-code-list li {
	font-family: ui-monospace, SFMono-Regular, Menlo, Consolas, monospace;
	font-size: 15px;
	letter-spacing: .08em;
	margin-bottom: 4px;
}

/* Admin pages. Specificity bumped + !important on a few rules because the
   base template ships its own form styling (inline labels, gray input
   backgrounds) that we have to override. */
.admin-flash {
	background: #e8f3ec;
	border-left: 4px solid #1f5132;
	padding: 10px 14px;
	margin: 0 0 14px;
	font-size: 14px;
	border-radius: 0 3px 3px 0;
}

/* Collapsible sections */
/* wide admin tables (household, positions) scroll inside their card instead
   of poking out of it; tables won't shrink below their content width */
.admin-table-scroll { overflow-x: auto; }
/* household table header: light band + dark text (matches .event-table),
   readable everywhere, and a firm bottom edge on the table */
.admin-table-scroll .honor-table thead { background: #edeef1; border-bottom: 2px solid #1f5132; }
.admin-table-scroll .honor-table thead th { color: #1f2933; }
.admin-table-scroll .honor-table { border-bottom: 2px solid #d0d3d8; }
/* dashboard + position-type tables: same light header as the household
   tables. Inside the scroll wrapper rows stay on one line, so phones get
   a sideways scroll instead of squished cells. */
.admin-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 18px;
	background: #fff;
	border: 1px solid #d0d3d8;
}
.admin-table thead { background: #edeef1; border-bottom: 2px solid #1f5132; }
.admin-table thead th {
	color: #1f2933;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 8px 12px;
	text-align: left;
}
.admin-table td {
	padding: 8px 12px;
	border-bottom: 1px solid #d0d3d8;
	font-size: 14px;
	line-height: 1.4;
}
.admin-table tbody tr:last-child td { border-bottom: 0; }
.admin-table-scroll .admin-table th,
.admin-table-scroll .admin-table td { white-space: nowrap; }

.admin-section {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	margin: 0 0 14px;
	padding: 0;
}
.admin-section > summary {
	cursor: pointer;
	padding: 14px 18px;
	display: block;            /* override default list-item */
	list-style: none;
	user-select: none;
	background: #edeef1;
	border-radius: 0 3px 0 0;
}
.admin-section > summary::-webkit-details-marker,
.admin-section > summary::marker { display: none; content: ""; }
.admin-section > summary h3 {
	display: inline;
	margin: 0;
	padding: 0;
	font-size: 16px;
	color: #1f5132 !important;
	font-weight: 700;
	letter-spacing: .02em;
}
.admin-section > summary::before {
	content: "+";
	display: inline-block;
	width: 22px;
	color: #1f5132;
	font-weight: 700;
	font-size: 18px;
	vertical-align: middle;
}
.admin-section[open] > summary::before { content: "−"; }
.admin-section[open] > summary { background: #d0d3d8; }

/* Mentor program grid on /education/breeder/ */
.mentor-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 16px 20px;
	margin: 14px 0 16px;
}
.mentor-state h5 {
	font-family: 'InterVariable', Arial, sans-serif;
	font-size: 14px;
	color: #1f5132;
	margin: 0 0 6px;
	padding-bottom: 4px;
	border-bottom: 1px solid #d0d3d8;
}
.mentor-state ul {
	list-style: none;
	margin: 0;
	padding: 0;
	font-size: 14px;
	line-height: 1.55;
}
.mentor-state ul li { margin: 0; }
.mentor-note {
	margin-top: 14px;
	font-size: 13px;
	color: #6b7c93;
}

/* Tables inside an admin section: wrap in a horizontal-scroll container so
   long content doesn't push past the section's right edge. */
.admin-positions-table-wrap {
	padding: 14px 18px 4px;
	overflow-x: auto;
}
.admin-positions-table {
	margin: 0 0 12px;
	width: 100%;
	max-width: 100%;
}
.admin-positions-table tr.is-retired { opacity: .55; }
.admin-link-btn {
	background: none;
	border: 0;
	color: #1f5132;
	cursor: pointer;
	font: inherit;
	text-decoration: underline;
	padding: 0;
}
.admin-link-btn:hover { text-decoration: none; }
.admin-link-btn-danger { color: #b8001f; }

/* Form layout */
.admin-form {
	padding: 16px 18px 20px;
}
.admin-form > p {
	margin: 0 0 14px;
	font-size: 13px;
	color: #4a5664;
	line-height: 1.55;
}
/* Descriptive paragraph between <summary> and the form (e.g. "For check
   payments..." on the renewal section). Direct child of .admin-section,
   so it doesn't pick up .admin-form's padding. */
.admin-section > p {
	margin: 14px 18px 0;
	font-size: 13px;
	color: #4a5664;
	line-height: 1.55;
}
.admin-grid {
	display: grid !important;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 16px;
	margin: 0 0 16px;
}
.admin-grid > label {
	display: flex !important;
	flex-direction: column !important;
	gap: 4px;
	font-size: 12px !important;
	font-weight: 600 !important;
	color: #4a5664 !important;
	letter-spacing: .02em;
	text-transform: uppercase;
	margin: 0 !important;
	padding: 0 !important;
	float: none !important;
	width: auto !important;
}
.admin-grid > label.span2 { grid-column: 1 / -1; }

.admin-grid input[type="text"],
.admin-grid input[type="email"],
.admin-grid input[type="tel"],
.admin-grid input[type="number"],
.admin-grid input[type="date"],
.admin-grid input[type="search"],
.admin-grid select,
.admin-grid textarea {
	width: 100% !important;
	box-sizing: border-box !important;
	margin: 0 !important;
	padding: 8px 10px !important;
	border: 1px solid #d0d3d8 !important;
	border-radius: 3px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	font-weight: 400 !important;
	text-transform: none !important;
	color: #1f2933 !important;
	background: #fff !important;
	letter-spacing: normal !important;
	box-shadow: none !important;
}
.admin-grid input:focus,
.admin-grid select:focus,
.admin-grid textarea:focus {
	outline: 2px solid #1f5132 !important;
	outline-offset: 1px !important;
	border-color: #1f5132 !important;
}
.admin-grid textarea { min-height: 100px; resize: vertical; }
.admin-grid small {
	display: block;
	margin-top: 4px;
	font-size: 11px;
	font-weight: 400;
	color: #6b7c93;
	font-style: italic;
	text-transform: none;
	letter-spacing: normal;
}

/* Checkbox-style label inside admin-grid */
.admin-grid > label.admin-checkbox {
	display: grid !important;
	grid-template-columns: 22px 1fr;
	gap: 4px 10px;
	align-items: start;
	font-weight: 500 !important;
	font-size: 14px !important;
	text-transform: none;
	color: #1f2933 !important;
	background: #edeef1;
	padding: 12px 14px !important;
	border-radius: 3px;
}
.admin-grid > label.admin-checkbox input {
	margin: 3px 0 0 !important;
	width: 16px !important;
	height: 16px;
	box-sizing: border-box;
	grid-row: 1 / 3;
}
.admin-grid > label.admin-checkbox small {
	grid-column: 2;
	margin: 0;
}

/* Submit button styling - base template has its own .button so this
   just overrides spacing */
.admin-form button.button {
	margin: 4px 0 0;
}

/* Skills picker */
.admin-skills {
	display: grid !important;
	grid-template-columns: repeat(auto-fill, minmax(200px, 1fr));
	gap: 8px;
	margin: 0 0 16px;
	background: #edeef1;
	padding: 14px;
	border-radius: 3px;
}
.admin-skills label.admin-skill {
	display: flex !important;
	flex-direction: row !important;
	gap: 8px;
	align-items: center;
	font-size: 13px !important;
	font-weight: 400 !important;
	color: #1f2933 !important;
	text-transform: none;
	letter-spacing: normal;
	padding: 4px 6px;
	margin: 0;
	cursor: pointer;
}
.admin-skills label.admin-skill input {
	margin: 0 !important;
	width: 16px;
	height: 16px;
	flex-shrink: 0;
}
.admin-skills label.admin-skill:hover { background: rgba(31, 81, 50, 0.06); border-radius: 3px; }

/* Member list filters */
.admin-filters {
	display: flex !important;
	gap: 8px;
	margin: 0 0 18px;
	flex-wrap: wrap;
	align-items: center;
}
.admin-filters select,
.admin-filters input[type="search"] {
	padding: 8px 12px !important;
	border: 1px solid #d0d3d8 !important;
	border-radius: 3px !important;
	font-size: 14px !important;
	font-family: inherit !important;
	background: #fff !important;
	color: #1f2933 !important;
	margin: 0 !important;
	box-shadow: none !important;
}
.admin-filters input[type="search"] { min-width: 260px; flex: 1; }

@media (max-width: 720px) {
	.admin-grid { grid-template-columns: 1fr; }
	.admin-grid > label.span2 { grid-column: 1; }
}

/* Coloring Book grid */
.coloring-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 16px;
}
.coloring-page {
	display: block;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	overflow: hidden;
	text-decoration: none;
	color: inherit;
	transition: box-shadow .15s, transform .15s;
}
.coloring-page:hover {
	box-shadow: 0 6px 14px rgba(31, 81, 50, 0.14);
	transform: translateY(-1px);
}
.coloring-thumb {
	height: 220px;
	background: #edeef1;
	overflow: hidden;
	display: flex;
	align-items: center;
	justify-content: center;
}
.coloring-thumb img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.coloring-caption {
	padding: 10px 12px;
}
.coloring-num {
	display: block;
	font-size: 10px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: 700;
	margin-bottom: 2px;
}
.coloring-title {
	display: block;
	font-size: 13px;
	color: #1f2933;
	line-height: 1.3;
}

/* Rescue page */
.rescue-feature {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 32px;
	align-items: center;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 24px 28px;
	border-radius: 0 3px 3px 0;
	margin-bottom: 18px;
}
.rescue-feature-text .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.rescue-feature-text h3 {
	margin: 0 0 12px;
	font-size: 22px;
	color: #1f2933;
}
.rescue-feature-text p {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.6;
}
.rescue-feature-text .button { margin-right: 6px; }
.rescue-feature-image img {
	width: 100%;
	height: auto;
	border-radius: 3px;
	box-shadow: 0 8px 20px rgba(31, 41, 51, 0.14);
}
.rescue-steps {
	margin: 0;
	padding: 0;
	list-style: none;
}
.rescue-steps li {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 12px 16px;
	margin-bottom: 8px;
	font-size: 14px;
	line-height: 1.55;
	position: relative;
	padding-left: 36px;
}
.rescue-steps li:before {
	content: "✓";
	position: absolute;
	left: 14px;
	top: 12px;
	color: #1f5132;
	font-weight: 700;
	font-size: 14px;
}
.rescue-followup {
	margin-top: 24px;
	padding: 16px 20px;
	background: #edeef1;
	border-radius: 3px;
}
.rescue-followup .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.rescue-followup p { margin: 0; font-size: 14px; line-height: 1.55; }
@media (max-width: 720px) {
	.rescue-feature { grid-template-columns: 1fr; gap: 18px; }
}

/* Shop page */
.shop-note {
	background: #edeef1;
	border-left: 4px solid #1f5132;
	padding: 12px 16px;
	border-radius: 0 3px 3px 0;
	font-size: 14px;
	margin: 12px 0 0;
}
.shop-note a { cursor: pointer; }
.shop-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 18px;
}
.shop-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	overflow: hidden;
	display: flex;
	flex-direction: column;
}
.shop-card-image {
	height: 180px;
	background: #edeef1;
	display: flex;
	align-items: center;
	justify-content: center;
	overflow: hidden;
}
.shop-card-image img {
	max-height: 160px;
	max-width: 80%;
	width: auto;
	height: auto;
	object-fit: contain;
	box-shadow: 0 6px 14px rgba(31, 41, 51, 0.14);
}
.shop-card-body {
	padding: 14px 18px 18px;
	flex: 1;
}
.shop-card-body-full { padding: 18px 20px; }
.shop-card-body .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.shop-card-body h4 {
	margin: 0 0 8px;
	font-size: 18px;
	color: #1f2933;
}
.shop-card-body p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.55;
	color: #4a5664;
}
.shop-author {
	font-style: italic;
	color: #6b7c93;
	font-size: 14px;
	font-weight: 400;
	margin-left: 4px;
}
.shop-add { cursor: pointer; }
.shop-note { font-size: 12px; color: #6b7c93; font-style: italic; margin: 6px 0 0; }

/* Read-only household summary inside the member profile Membership section. */
.membership-household {
	margin: 16px 0 12px;
	padding: 12px 14px;
	background: #f7f8fa;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
}
.membership-household h4 {
	margin: 0 0 6px;
	font-size: 14px;
	font-weight: 700;
	color: #1f5132;
	text-transform: uppercase;
	letter-spacing: .04em;
}
.membership-household p {
	margin: 0 0 10px;
	font-size: 13px;
	color: #4a5664;
}
.membership-people {
	list-style: none;
	margin: 0;
	padding: 0;
}
.membership-people li {
	padding: 4px 0;
	font-size: 14px;
	color: #1f2933;
}
.membership-people li .role {
	display: inline-block;
	width: 70px;
	font-size: 11px;
	font-weight: 600;
	color: #6b7c93;
	text-transform: uppercase;
	letter-spacing: .04em;
}

/* Renewal breakdown table inside the Membership Renewal shop card. dt/dd
   side-by-side; "Total" row gets a top border + larger font. */
.shop-renewal-breakdown {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 4px 16px;
	margin: 12px 0 10px;
	font-size: 14px;
	color: #1f2933;
}
.shop-renewal-breakdown dt { color: #4a5664; }
.shop-renewal-breakdown dd { margin: 0; text-align: right; }
.shop-renewal-breakdown dt.total,
.shop-renewal-breakdown dd.total {
	margin-top: 6px;
	padding-top: 8px;
	border-top: 1px solid #d0d3d8;
	font-size: 16px;
	font-weight: 600;
	color: #1f5132;
}

/* --- modern product card: stacked-radio variants + qty stepper + add-to-cart --- */
.shop-card {
	position: relative;
	box-shadow: 0 2px 8px rgba(31, 41, 51, 0.04);
}
.shop-card-buy {
	padding: 14px 18px 18px;
	border-top: 1px solid #ecedf0;
	background: #fafbfc;
}
/* stacked variant radios */
.shop-variants {
	border: 0;
	margin: 0 0 10px;
	padding: 0;
	display: flex;
	flex-direction: column;
	gap: 0;
}
.shop-variants > legend { position: absolute; width: 1px; height: 1px; padding: 0; margin: -1px; overflow: hidden; clip: rect(0,0,0,0); white-space: nowrap; border: 0; }
.shop-variant {
	display: flex;
	align-items: center;
	gap: 10px;
	padding: 6px 8px;
	border-radius: 6px;
	cursor: pointer;
	font-size: 14px;
	color: #1f2933;
	transition: background .12s ease;
}
.shop-variant-label { flex: 1; }
.shop-variant:hover { background: #f3f4f6; }
.shop-variant input { position: absolute; opacity: 0; pointer-events: none; }
.shop-variant-radio {
	width: 18px;
	height: 18px;
	border: 2px solid #95a0ad;
	border-radius: 50%;
	position: relative;
	flex-shrink: 0;
	justify-self: start;
	box-sizing: border-box;
	transition: border-color .12s ease;
}
.shop-variant:has(input:checked) .shop-variant-radio { border-color: #1f5132; }
.shop-variant:has(input:checked) .shop-variant-radio::after {
	content: '';
	position: absolute;
	top: 3px;
	left: 3px;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #1f5132;
}
.shop-variant:has(input:focus-visible) .shop-variant-radio {
	outline: 2px solid #2f80b6;
	outline-offset: 2px;
}
.shop-variant-label { font-weight: 500; }
.shop-variant-price { font-weight: 700; color: #1f2933; }
/* total line */
.shop-total-line {
	margin: 0 0 10px;
	font-size: 14px;
	color: #4a5664;
	display: flex;
	align-items: baseline;
	justify-content: space-between;
	gap: 10px;
}
.shop-total-line .shop-total {
	font-weight: 700;
	color: #1f2933;
	font-size: 16px;
	margin-left: 4px;
}
.shop-ship-note {
	font-size: 12px;
	color: #6b7c93;
	font-style: italic;
}
.shop-total-inline {
	display: inline-flex;
	align-items: center;
	font-size: 14px;
	color: #4a5664;
	white-space: nowrap;
}
.shop-total-inline .shop-total {
	font-weight: 700;
	color: #1f2933;
	font-size: 16px;
	margin-left: 4px;
}
/* action row: qty stepper on the left, Add to cart filling the rest */
.shop-action-row {
	display: flex;
	align-items: stretch;
	gap: 10px;
}
.confirm-box.breeder-modal-box { text-align: left; max-width: 520px; max-height: 85vh; overflow-y: auto; }
.breeder-modal-box .breeder-modal-intro { margin: 0 0 8px; font-size: 14px; color: #4a5664; }
.breeder-waiver-points { margin: 0 0 12px; padding-left: 18px; font-size: 13px; line-height: 1.5; color: #4a5664; }
.breeder-waiver-points li { margin: 4px 0; }
.breeder-agree-row { display: flex; align-items: flex-start; gap: 8px; margin: 12px 0; font-size: 14px; line-height: 1.45; cursor: pointer; }
.breeder-agree-row input { margin: 2px 0 0; flex: 0 0 auto; }
.breeder-sign-row { display: block; font-size: 13px; color: #4a5664; margin: 12px 0 0; }
.breeder-sign-row input { display: block; width: 100%; max-width: 340px; margin-top: 6px; padding: 8px 10px; border: 1px solid #cfd3d8; border-radius: 3px; background: #fff; font-size: 14px; }
.breeder-modal-actions { display: flex; gap: 10px; justify-content: flex-end; margin-top: 18px; }
.shop-qty {
	display: inline-flex;
	align-items: stretch;
	border: 1.5px solid #d0d3d8;
	border-radius: 8px;
	overflow: hidden;
	background: #fff;
	flex-shrink: 0;
}
.shop-qty-btn {
	width: 40px;
	height: 42px;
	border: 0;
	background: transparent;
	cursor: pointer;
	font-size: 18px;
	font-weight: 700;
	color: #1f5132;
	line-height: 1;
	display: flex;
	align-items: center;
	justify-content: center;
}
.shop-qty-btn:hover { background: #edeef1; }
.shop-qty-input {
	width: 44px;
	height: 42px;
	border: 0;
	border-left: 1.5px solid #d0d3d8;
	border-right: 1.5px solid #d0d3d8;
	text-align: center;
	font-size: 15px;
	font-weight: 600;
	color: #1f2933;
	background: #fff;
	-moz-appearance: textfield;
	appearance: textfield;
}
.shop-qty-input::-webkit-outer-spin-button,
.shop-qty-input::-webkit-inner-spin-button { -webkit-appearance: none; margin: 0; }
/* Add to cart fills remaining width of the action row */
.shop-card .shop-add,
.shop-card .breeder-add {
	flex: 1;
	height: 42px;
	padding: 0 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	border-radius: 8px;
	border: 0;
	background: #1f5132;
	color: #fff;
	cursor: pointer;
	transition: background .12s ease, transform .08s ease;
}
.shop-card .shop-add:hover,
.shop-card .breeder-add:hover { background: #143a23; }
.shop-card .shop-add:active,
.shop-card .breeder-add:active { transform: scale(.98); }
.shop-card .shop-soon {
	flex: 1;
	width: 100%;
	height: 42px;
	padding: 0 18px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	font-size: 14px;
	font-weight: 600;
	border-radius: 8px;
	background: #fff;
	color: #1f5132;
	border: 1.5px solid #1f5132;
	cursor: not-allowed;
}
.shop-card .shop-add.is-added { background: #143a23; }
/* full-width info-card CTA (anchor with .button.ghost.shop-cta) */
.shop-cta { display: block; width: 100%; text-align: center; padding: 10px 16px; }
/* mobile: larger tap targets */
@media (max-width: 600px) {
	.shop-qty-btn { width: 44px; height: 46px; font-size: 20px; }
	.shop-qty-input { width: 48px; height: 46px; }
	.shop-card .shop-add { height: 46px; font-size: 15px; }
}

/* --- cart: floating button + slide-in drawer --- */
.cart-toggle {
	position: fixed;
	top: 96px;
	right: 14px;
	z-index: 60;
	width: 52px;
	height: 52px;
	border-radius: 50%;
	border: 0;
	background: #1f5132;
	color: #fff;
	cursor: pointer;
	box-shadow: 0 4px 14px rgba(31,41,51,.28);
	display: flex;
	align-items: center;
	justify-content: center;
}
.cart-toggle:hover { background: #143a23; }
.cart-count {
	position: absolute;
	top: -4px;
	right: -4px;
	min-width: 20px;
	height: 20px;
	padding: 0 5px;
	border-radius: 10px;
	background: #820000;
	color: #fff;
	font-size: 12px;
	font-weight: 700;
	line-height: 20px;
	text-align: center;
}
.cart-overlay {
	position: fixed;
	inset: 0;
	background: rgba(31,41,51,.45);
	z-index: 70;
}
.cart-drawer {
	position: fixed;
	top: 0;
	right: 0;
	z-index: 80;
	width: 340px;
	max-width: 88vw;
	height: 100%;
	background: #fff;
	box-shadow: -4px 0 18px rgba(31,41,51,.2);
	transform: translateX(100%);
	transition: transform .25s ease;
	display: flex;
	flex-direction: column;
}
.cart-drawer.is-open { transform: translateX(0); }
.cart-drawer-head {
	display: flex;
	align-items: center;
	justify-content: space-between;
	padding: 16px 18px;
	border-bottom: 1px solid #d0d3d8;
}
.cart-drawer-head h3 { margin: 0; font-size: 18px; color: #1f2933; }
.cart-close {
	border: 0;
	background: none;
	font-size: 26px;
	line-height: 1;
	color: #6b7c93;
	cursor: pointer;
	padding: 0 4px;
}
.cart-close:hover { color: #1f2933; }
.cart-drawer-body { flex: 1; overflow-y: auto; padding: 12px 18px; }
.cart-drawer-foot { padding: 14px 18px 18px; border-top: 1px solid #d0d3d8; }
.cart-empty { color: #6b7c93; font-size: 14px; margin: 8px 0; }
.confirm-modal {
	position: fixed;
	inset: 0;
	z-index: 90;
	background: rgba(31,41,51,.55);
	display: flex;
	align-items: center;
	justify-content: center;
	padding: 20px;
}
.confirm-modal[hidden] { display: none; }
.confirm-box {
	background: #fff;
	border-top: 4px solid #1f5132;
	border-radius: 4px;
	box-shadow: 0 12px 32px rgba(0,0,0,.3);
	padding: 26px 30px;
	max-width: 440px;
	width: 100%;
	text-align: center;
}
.confirm-box h3 { margin: 0 0 10px; font-size: 20px; color: #1f5132; }
.confirm-box p { margin: 0 0 18px; font-size: 14px; line-height: 1.6; color: #4a5664; }
.cart-lines { list-style: none; margin: 0; padding: 0; }
.cart-line {
	display: flex;
	justify-content: space-between;
	align-items: center;
	gap: 12px;
	padding: 8px 0;
	border-bottom: 1px solid #edeef1;
	font-size: 14px;
}
.cart-line:last-child { border-bottom: 0; }
.cart-line-name { flex: 1; color: #1f2933; }
.cart-line-ctrl { display: flex; align-items: center; gap: 8px; }
.cart-qty {
	width: 26px; height: 26px;
	border: 1px solid #d0d3d8;
	background: #f5f6f8;
	border-radius: 3px;
	cursor: pointer;
	font-size: 15px;
	line-height: 1;
	color: #1f5132;
}
.cart-qty:hover { background: #1f5132; color: #fff; border-color: #1f5132; }
.cart-qty-n { min-width: 18px; text-align: center; font-weight: 600; }
.cart-line-amt { min-width: 60px; text-align: right; font-weight: 600; color: #1f2933; }
.cart-total { font-size: 16px; margin: 6px 0 14px; text-align: right; }
.cart-total strong { color: #1f5132; }
.cart-msg { font-size: 13px; color: #6b7c93; }
.shop-confirm {
	margin: 20px 0;
	padding: 20px 24px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	max-width: 600px;
}
.shop-help {
	margin-top: 28px;
	padding: 16px 20px;
	background: #edeef1;
	border-radius: 3px;
}
.shop-help .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.shop-help p { margin: 0; font-size: 14px; line-height: 1.55; }
.shop-thanks {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 22px 26px;
	border-radius: 0 3px 3px 0;
	margin-bottom: 18px;
}
.shop-thanks p strong {
	font-size: 16px;
	color: #1f2933;
}
.shop-thanks ul {
	margin: 12px 0 0;
	padding-left: 22px;
}
.shop-thanks li {
	margin: 6px 0;
	font-size: 14px;
	line-height: 1.55;
}
.shop-thanks-back {
	margin-top: 20px;
}

/* Events */
.event-feature {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 22px 26px;
	border-radius: 0 3px 3px 0;
	margin-bottom: 18px;
}
.event-feature .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.event-feature h3 {
	margin: 0 0 6px;
	font-size: 22px;
	color: #1f2933;
}
.event-feature .event-meta {
	margin: 0 0 14px;
	font-size: 14px;
	color: #4a5664;
}
.event-feature .event-note {
	margin: 12px 0 0;
	font-size: 12px;
	color: #6b7c93;
	font-style: italic;
}
.event-facts {
	margin: 8px 0;
	display: grid;
	grid-template-columns: 180px 1fr;
	gap: 6px 12px;
}
.event-facts dt {
	font-weight: 600;
	color: #1f5132;
	font-size: 13px;
}
.event-facts dd {
	margin: 0;
	font-size: 14px;
	color: #1f2933;
}
.event-table {
	width: 100%;
	border-collapse: collapse;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	overflow: hidden;
	margin-bottom: 18px;
}
.event-table thead { background: #edeef1; border-bottom: 2px solid #1f5132; }
.event-table thead th {
	color: #1f2933;
	font-weight: 700;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 8px 12px;
	text-align: left;
}
.event-table td {
	padding: 10px 12px;
	border-bottom: 1px solid #d0d3d8;
	font-size: 14px;
	line-height: 1.4;
}
.event-table tbody tr:last-child td { border-bottom: 0; }
.event-table tbody tr:nth-child(even) { background: #edeef1; }
.event-empty {
	background: #edeef1;
	padding: 14px 18px;
	border-radius: 3px;
	font-style: italic;
	color: #6b7c93;
}
.nationals-gallery {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 10px;
	margin: 12px 0 0;
}
.nationals-gallery img {
	width: 100%;
	height: 140px;
	object-fit: cover;
	border-radius: 3px;
	display: block;
}

/* Basenji History timeline
   Rail on the left with a green vertical line and date dots; each paragraph
   becomes a card. Mobile-friendly: same vertical layout on every breakpoint. */
.timeline-intro {
	background: #edeef1;
	border-left: 4px solid #1f5132;
	padding: 14px 18px;
	border-radius: 0 3px 3px 0;
	margin-bottom: 24px;
}
.timeline-intro .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.timeline-intro p {
	margin: 0 0 8px;
	font-size: 14px;
	line-height: 1.55;
}
.timeline-intro p:last-child { margin-bottom: 0; }

.timeline-body {
	position: relative;
	padding-left: 36px;
	margin-top: 12px;
}
.timeline-body:before {
	content: "";
	position: absolute;
	left: 7px;
	top: 6px;
	bottom: 6px;
	width: 2px;
	background: linear-gradient(to bottom, #1f5132 0%, #1f5132 95%, transparent 100%);
}
.timeline-body p,
.timeline-body > div {
	position: relative;
	padding: 14px 18px;
	margin: 0 0 12px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	font-size: 15px;
	line-height: 1.6;
	color: #1f2933;
}
.timeline-body p:before,
.timeline-body > div:before {
	content: "";
	position: absolute;
	left: -34px;
	top: 18px;
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: #1f5132;
	border: 3px solid #fff;
	box-shadow: 0 0 0 2px #1f5132;
	z-index: 1;
}
/* The leading <strong> of each entry usually holds the year - make it pop */
.timeline-body p > strong:first-child {
	display: inline-block;
	background: #1f5132;
	color: #fff;
	padding: 3px 10px;
	border-radius: 3px;
	font-size: 13px;
	letter-spacing: .04em;
	margin: 0 8px 4px 0;
}
.timeline-body p > strong:first-child + strong {
	color: inherit;
	background: transparent;
	padding: 0;
}
/* Paragraphs that are just an image or that have no year prefix still get
   the card treatment but without the year badge styling. */
.timeline-body img {
	max-width: 100%;
	height: auto;
	border-radius: 3px;
	display: block;
	margin: 4px 0;
}
.timeline-body a {
	color: #1f5132;
	text-decoration: underline;
}
.timeline-body a:hover { color: #143a23; }
.timeline-body hr {
	border: 0;
	border-top: 1px solid #d0d3d8;
	margin: 14px 0;
}

@media (max-width: 720px) {
	.timeline-body {
		padding-left: 28px;
	}
	.timeline-body:before {
		left: 5px;
	}
	.timeline-body p:before,
	.timeline-body > div:before {
		left: -28px;
		width: 10px;
		height: 10px;
	}
	.timeline-body p,
	.timeline-body > div {
		padding: 12px 14px;
		font-size: 14px;
	}
}

/* Breed Standard page */
.standard-meta {
	background: #edeef1;
	border-left: 4px solid #1f5132;
	padding: 14px 18px;
	border-radius: 0 3px 3px 0;
	margin-bottom: 24px;
}
.standard-meta .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.standard-meta p { margin: 0; font-size: 14px; line-height: 1.55; }
.standard-section {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 18px 22px;
	border-radius: 0 3px 3px 0;
	margin-bottom: 14px;
}
.standard-section h3 {
	margin: 0 0 10px;
	font-size: 18px;
	color: #1f5132;
}
.standard-section p {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.65;
	color: #1f2933;
}
.standard-section p:last-child { margin-bottom: 0; }
.standard-dl {
	margin: 8px 0 0;
}
.standard-dl dt {
	font-weight: 700;
	color: #1f5132;
	margin-top: 10px;
	font-size: 14px;
}
.standard-dl dd {
	margin: 4px 0 0;
	font-size: 15px;
	line-height: 1.6;
	color: #1f2933;
}
.standard-approval {
	margin: 18px 0 0;
	font-size: 12px;
	color: #6b7c93;
	font-style: italic;
	text-align: right;
}
.standard-section blockquote {
	margin: 12px 0 16px;
	padding: 14px 18px;
	background: #edeef1;
	border-left: 3px solid #1f5132;
	border-radius: 0 3px 3px 0;
}
.standard-section blockquote p { margin: 0; }
.standard-section h4 {
	margin: 20px 0 10px;
	font-size: 16px;
	color: #1f5132;
}
.standard-section .clear { clear: both; }
.standard-photo-wide {
	margin: 14px 0;
}
.standard-photo-wide img {
	max-width: 100%;
	height: auto;
	border-radius: 3px;
	display: block;
}
.standard-photo-medium {
	margin: 14px 0;
	max-width: 520px;
}
.standard-photo-medium img {
	max-width: 100%;
	height: auto;
	border-radius: 3px;
	display: block;
}
.standard-photo-right {
	float: right;
	margin: 0 0 14px 20px;
	max-width: 260px;
}
.standard-photo-right img {
	width: 100%;
	height: auto;
	border-radius: 3px;
	display: block;
}
.standard-photo-right.narrow { max-width: 200px; }
.standard-side-by-side {
	display: flex;
	gap: 12px;
	margin: 14px 0;
	align-items: start;
}
.standard-side-by-side img {
	flex: 1;
	min-width: 0;
	max-width: 50%;
	height: auto;
	border-radius: 3px;
}
/* Captioned figure pattern (prototype: Size section). One image or a
   comparison row, always with a caption tying the photo to the standard. */
.standard-figure {
	margin: 16px 0;
}
.standard-figure > img {
	max-width: 100%;
	height: auto;
	border-radius: 3px;
	display: block;
}
.standard-figure-imgs {
	display: flex;
	gap: 12px;
	align-items: flex-start;
}
.standard-figure-imgs img {
	flex: 1 1 0;
	min-width: 0;
	max-width: 100%;
	height: auto;
	border-radius: 3px;
	display: block;
}
.standard-figure figcaption {
	margin-top: 8px;
	font-size: 13px;
	font-style: italic;
	color: #4a5664;
	line-height: 1.5;
}
@media (max-width: 600px) {
	.standard-figure-imgs { flex-direction: column; }
}
.standard-trio {
	display: flex;
	gap: 10px;
	margin: 14px 0;
	align-items: start;
}
.standard-trio img {
	flex: 1;
	min-width: 0;
	height: auto;
	border-radius: 3px;
}
.standard-color-grid {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 10px;
	margin: 14px 0;
	max-width: 520px;
}
.standard-color-grid img {
	width: 100%;
	height: auto;
	border-radius: 3px;
}
.standard-color-grid.four-wide {
	grid-template-columns: repeat(4, 1fr);
	max-width: 100%;
}
.standard-figure .standard-color-grid { margin: 0; }
@media (max-width: 720px) {
	.standard-photo-right { float: none; max-width: 100%; margin: 14px 0; }
	.standard-photo-right.narrow { max-width: 100%; }
	.standard-side-by-side { flex-wrap: wrap; }
	.standard-side-by-side img { max-width: 100%; }
	.standard-trio { flex-wrap: wrap; }
	.standard-color-grid { grid-template-columns: repeat(2, 1fr); }
	.standard-color-grid.four-wide { grid-template-columns: repeat(2, 1fr); }
}

/* Honor Rolls table */
.honor-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 24px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	overflow: hidden;
}
.honor-table thead {
	background: #1f5132;
}
.honor-table thead th {
	color: #fff;
	font-size: 12px;
	letter-spacing: .08em;
	text-transform: uppercase;
	padding: 8px 12px;
	text-align: left;
}
.honor-table th.hr-count,
.honor-table td.hr-count {
	width: 60px;
	text-align: center;
}
/* admin members roster: light header, black text instead of the green/white honor-roll style */
.members-table thead {
	background: #eceef1;
}
.members-table thead th {
	color: #111;
	border-bottom: 2px solid #c7ccd2;
}
.honor-table td {
	padding: 8px 12px;
	border-bottom: 1px solid #d0d3d8;
	font-size: 14px;
	line-height: 1.4;
}
.honor-table tbody tr:last-child td { border-bottom: 0; }
.honor-table td.hr-count {
	font-weight: 700;
	color: #1f5132;
	background: #edeef1;
}
.honor-table td.hr-name a {
	color: #1f2933;
	text-decoration: none;
}
.honor-table td.hr-name a:hover {
	color: #1f5132;
	text-decoration: underline;
}
/* Performance-roll illustrated profile (one page per modern honor-roll dog).
   Centered poster: hero photo, then name, vitals, and the qualifying get. */
.pbb-profile-page { max-width: 660px; margin: 0 auto; }
.pbb-card { border: 1px solid #e2e5ea; border-radius: 8px; overflow: hidden; background: #fff; box-shadow: 0 1px 3px rgba(31,41,51,.05); }
.pbb-hero { margin: 0; }
.pbb-hero a { display: block; cursor: zoom-in; }
.pbb-hero img { width: 100%; display: block; }
.pbb-hero figcaption { font-size: 12px; color: #6b7c93; padding: 6px 22px 0; }
.pbb-head { text-align: center; padding: 22px 24px 4px; }
.pbb-eyebrow { font-size: 11px; text-transform: uppercase; letter-spacing: .1em; color: #1f5132; margin: 0 0 10px; }
.pbb-head h2 { font-size: 23px; color: #1f2933; margin: 0 0 4px; line-height: 1.25; }
.pbb-head h2 .pbb-titles { display: block; font-size: 15px; font-weight: normal; color: #6b7c93; margin-top: 3px; letter-spacing: .02em; }
.pbb-callname { color: #1f5132; font-weight: 600; font-size: 17px; margin: 6px 0 0; }
.pbb-facts { display: flex; flex-direction: column; gap: 12px; margin: 18px 0 4px; padding: 18px 24px; border-top: 1px solid #eef0f3; font-size: 14px; }
.pbb-facts div { text-align: center; }
.pbb-facts dt { color: #6b7c93; text-transform: uppercase; letter-spacing: .06em; font-size: 11px; margin-bottom: 3px; }
.pbb-facts dd { margin: 0; color: #1f2933; line-height: 1.4; }
.pbb-facts dd a { color: #1f5132; }
.pbb-get { padding: 20px 26px 26px; border-top: 1px solid #eef0f3; }
.pbb-get-h { font-size: 12px; text-transform: uppercase; letter-spacing: .08em; color: #1f5132; text-align: center; margin: 0 0 14px; }
.pbb-getlist { list-style: none; margin: 0; padding: 0; }
.pbb-getlist li { padding: 11px 0; border-bottom: 1px solid #eef0f3; font-size: 14px; line-height: 1.5; }
.pbb-getlist li:last-child { border-bottom: 0; }
.pbb-get-call { display: block; color: #1f5132; font-weight: 600; }
.pbb-get-reg { color: #4a5664; }
.pbb-back { margin-top: 22px; font-size: 14px; text-align: center; }
@media (max-width: 520px) {
	.pbb-facts { gap: 12px; }
}

.conf-rolls {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 24px;
	align-items: start;
}
.conf-col h3 { margin-top: 0; }
.conf-table {
	border: 2px solid #000;
	border-radius: 0;
	overflow: visible;
}
.conf-table thead { background: #fff; }
.conf-table thead th {
	color: #000;
	border-bottom: 2px solid #000;
}
.conf-table th.hr-count { text-align: center; }
.conf-table td.hr-name a { font-size: 13px; color: #000; }
.conf-table td.hr-count { color: #000; background: #fff; }
.conf-table td { border-bottom: 1px solid #000; }
.conf-table th.hr-count,
.conf-table td.hr-count { border-right: 1px solid #000; }
.conf-tally-note {
	font-size: 13px;
	color: #555;
	font-style: italic;
}
@media (max-width: 720px) {
	.conf-rolls { grid-template-columns: 1fr; gap: 0; }
}
.honor-titles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 10px;
	margin: 12px 0 0;
}
.honor-title-group {
	background: #edeef1;
	padding: 10px 14px;
	border-radius: 3px;
	font-size: 13px;
	line-height: 1.5;
}
.honor-title-group strong {
	color: #1f5132;
	display: block;
	margin-bottom: 2px;
	font-size: 12px;
	text-transform: uppercase;
	letter-spacing: .06em;
}

/* Find a Breeder directory */
.breeder-disclaimer {
	background: #edeef1;
	border-left: 4px solid #1f5132;
	padding: 16px 20px;
	border-radius: 0 3px 3px 0;
	margin-bottom: 24px;
}
.breeder-disclaimer .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.breeder-disclaimer p {
	margin: 0 0 10px;
	font-size: 13px;
	line-height: 1.55;
	color: #4a5664;
}
.breeder-disclaimer p:last-child { margin-bottom: 0; }
.breeder-jump {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	padding: 12px 14px;
	background: #edeef1;
	border-radius: 3px;
	font-size: 13px;
	margin-bottom: 18px;
}
.breeder-jump a {
	color: #1f5132;
	text-decoration: none;
	padding: 4px 10px;
	border-radius: 3px;
}
.breeder-jump a:hover { background: #1f5132; color: #fff; }
.breeder-state { margin-bottom: 28px; scroll-margin-top: 100px; }
.breeder-state-name {
	background: #1f5132;
	color: #fff;
	padding: 10px 16px;
	margin: 0 0 12px;
	border-radius: 3px;
	font-size: 15px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.breeder-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 12px;
}
.breeder-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-top: 3px solid #1f5132;
	padding: 14px 16px;
	border-radius: 0 0 3px 3px;
}
.breeder-name {
	margin: 0 0 4px;
	font-size: 15px;
	font-weight: 600;
	color: #1f2933;
}
.breeder-city {
	margin: 0 0 10px;
	font-size: 13px;
	color: #6b7c93;
}
.breeder-contact {
	margin: 0;
	display: grid;
	grid-template-columns: auto 1fr;
	gap: 4px 10px;
	font-size: 12px;
}
.breeder-contact dt {
	color: #6b7c93;
	text-transform: uppercase;
	letter-spacing: .04em;
	font-size: 10px;
	align-self: start;
	padding-top: 2px;
}
.breeder-contact dd {
	margin: 0;
	color: #1f2933;
	min-width: 0;
	overflow-wrap: anywhere;
	word-break: break-word;
}
/* Website cell: one line, truncate with ellipsis. The href on the anchor
   still carries the full URL so click + browser status-bar hover work. */
.breeder-contact dd.breeder-website {
	overflow: hidden;
	text-overflow: ellipsis;
	white-space: nowrap;
}
.breeder-contact dd.breeder-website a { display: inline; }
.breeder-contact a {
	color: #1f5132;
	text-decoration: none;
}
.breeder-contact a:hover { text-decoration: underline; }
.breeder-contact .contact-email { cursor: pointer; }
.breeder-kennel-line {
	margin: 0 0 6px;
	font-size: 13px;
	font-style: italic;
	color: #1f5132;
}
button.reveal-email,
button.reveal-phone {
	background: transparent;
	border: none;
	color: #1f5132;
	font-size: 12px;
	font-family: inherit;
	cursor: pointer;
	padding: 0;
	text-decoration: underline;
}
button.reveal-email:hover,
button.reveal-phone:hover {
	color: #143a23;
}
.phone-revealed { font-size: 12px; color: #1f5132; }
.breeder-jump-sep {
	color: #d0d3d8;
	padding: 0 4px;
	user-select: none;
}
.breeder-intl-divider {
	margin: 32px 0 16px;
	padding-top: 18px;
	border-top: 2px solid #d0d3d8;
}
.breeder-intl-divider h3 {
	margin: 0;
	color: #6b7c93;
	font-size: 14px;
	letter-spacing: .08em;
	text-transform: uppercase;
}

/* Floating "jump to nav" button */
.floating-top {
	position: fixed;
	bottom: 24px;
	right: 24px;
	background: #1f5132;
	color: #fff;
	border: none;
	border-radius: 24px;
	padding: 10px 18px;
	font-size: 13px;
	font-family: inherit;
	font-weight: 600;
	cursor: pointer;
	box-shadow: 0 4px 16px rgba(31, 81, 50, 0.30);
	z-index: 100;
	transition: background .15s, transform .15s;
}
.floating-top:hover {
	background: #143a23;
	transform: translateY(-1px);
}
.floating-top[hidden] { display: none; }
.breeder-followup {
	margin-top: 24px;
	padding: 16px 20px;
	background: #edeef1;
	border-radius: 3px;
}
.breeder-followup .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.breeder-followup p { margin: 0; font-size: 14px; line-height: 1.55; }

/* Is a Basenji Right for Me - alternating photo/text rows
   Same image size every row; only side alternates via -flip variant. */
.iab-row {
	display: grid;
	grid-template-columns: 320px 1fr;
	gap: 28px;
	align-items: center;
	padding: 24px 0;
	border-bottom: 1px solid #d0d3d8;
}
.iab-row:last-of-type { border-bottom: 0; }
.iab-row-flip { grid-template-columns: 1fr 320px; }
.iab-photo {
	background: #edeef1;
	border-radius: 3px;
	overflow: hidden;
	aspect-ratio: 4 / 3;
}
.iab-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
}
.iab-text h3 {
	margin: 0 0 10px;
	font-size: 22px;
	color: #1f2933;
}
.iab-text p {
	margin: 0 0 12px;
	font-size: 15px;
	line-height: 1.65;
	color: #1f2933;
}
.iab-text p:last-child { margin-bottom: 0; }
.iab-text a { color: #1f5132; }
@media (max-width: 720px) {
	.iab-row, .iab-row-flip {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.iab-row-flip > .iab-photo { order: -1; }
	.iab-photo img { max-height: 220px; }
}

/* Basenji Health hub */
.health-testing-row {
	display: flex;
	gap: 24px;
	align-items: stretch;
	margin-bottom: 18px;
}
.health-testing-photo {
	flex: 0 0 340px;
	border-radius: 3px;
	overflow: hidden;
}
.health-testing-photo img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	display: block;
	border-radius: 3px;
}
.health-testing-list {
	flex: 1;
	background: #edeef1;
	border-radius: 3px;
	padding: 18px 22px;
}
.health-testing-list h3 {
	margin: 0 0 8px;
	font-size: 18px;
	color: #1f5132;
}
.health-testing-list p {
	margin: 0 0 12px;
	font-size: 14px;
	line-height: 1.55;
}
.health-testing-list ul {
	margin: 0;
	padding-left: 20px;
}
.health-testing-list li {
	margin: 8px 0;
	font-size: 14px;
	line-height: 1.55;
}
.health-testing-list li:first-child { margin-top: 0; }
.health-testing-list li:last-child { margin-bottom: 0; }
.health-testing-list a { color: #1f5132; }
@media (max-width: 720px) {
	.health-testing-row { flex-direction: column; }
	.health-testing-photo { flex: none; max-height: 300px; }
}
.health-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(280px, 1fr));
	gap: 16px;
}
.health-card {
	display: block;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	padding: 18px 20px;
	border-radius: 0 3px 3px 0;
	text-decoration: none;
	color: inherit;
	transition: box-shadow .15s, border-left-color .15s;
}
.health-card:hover {
	box-shadow: 0 6px 16px rgba(31, 81, 50, 0.10);
	border-left-color: #143a23;
}
.health-card .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.health-card h4 {
	margin: 0 0 10px;
	font-size: 18px;
	color: #1f2933;
}
.health-card p {
	margin: 0 0 6px;
	font-size: 14px;
	line-height: 1.55;
	color: #4a5664;
}
.health-card p:last-child { margin-bottom: 0; }
.health-card-cta {
	margin-top: 10px !important;
	font-size: 11px !important;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #1f5132 !important;
	font-weight: 600 !important;
}
.panel-list {
	display: flex;
	flex-direction: column;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 4px;
	overflow: hidden;
	max-width: 340px;
	margin: 0 auto;
}
.panel-item {
	display: flex;
	align-items: center;
	gap: 16px;
	padding: 14px 18px;
	text-decoration: none;
	color: #1f2933;
	border-bottom: 1px solid #eee;
	transition: background .12s;
}
.panel-item:last-child { border-bottom: 0; }
.panel-item:hover { background: #f0f7f2; }
.panel-dot {
	width: 10px;
	height: 10px;
	background: #1f5132;
	border-radius: 50%;
	flex-shrink: 0;
}
.panel-text { flex: 1; }
.panel-label {
	font-size: 15px;
	font-weight: 600;
	display: block;
}
.panel-sub {
	font-size: 12px;
	color: #6b7c93;
	display: block;
	margin-top: 2px;
}
.panel-arrow { display: none; }
.admin-stat-cards {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(180px, 1fr));
	gap: 12px;
}
.admin-stat {
	display: block;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 3px solid #1f5132;
	padding: 14px 16px;
	border-radius: 0 4px 4px 0;
	text-decoration: none;
	color: #1f2933;
	transition: box-shadow .12s, border-color .12s;
}
.admin-stat:hover {
	box-shadow: 0 4px 12px rgba(31, 81, 50, 0.10);
	border-left-color: #143a23;
}
.admin-stat-kicker {
	display: block;
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
	text-decoration: underline;
}
.admin-stat-num {
	display: block;
	font-size: 28px;
	font-weight: 700;
	color: #1f2933;
	line-height: 1.2;
	text-decoration: none;
}
.admin-stat-desc {
	display: block;
	font-size: 12px;
	color: #6b7c93;
	margin-top: 2px;
	text-decoration: none;
}
.member-tiles {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(160px, 1fr));
	gap: 12px;
}
.member-tile {
	display: block;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 3px solid #1f5132;
	padding: 12px 14px;
	border-radius: 0 3px 3px 0;
	text-decoration: none;
	color: #1f2933;
}
.member-tile:hover {
	box-shadow: 0 4px 12px rgba(31, 81, 50, 0.10);
	border-left-color: #143a23;
}
.member-tile .kicker {
	margin: 0 0 2px;
	font-size: 10px;
	letter-spacing: .1em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.member-tile h4 {
	margin: 0;
	font-size: 15px;
	color: #1f2933;
}
.member-tile .health-card-cta {
	margin-top: 6px !important;
}
.health-tests {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(300px, 1fr));
	gap: 16px;
}
.health-test {
	background: #edeef1;
	border-radius: 3px;
	padding: 18px 20px;
}
.health-test h4 {
	margin: 0 0 8px;
	font-size: 16px;
	color: #1f2933;
}
.health-test p {
	margin: 0 0 10px;
	font-size: 14px;
	line-height: 1.55;
	color: #4a5664;
}
.health-followup {
	margin-top: 32px;
	padding: 16px 20px;
	background: #edeef1;
	border-radius: 3px;
}
.health-followup .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.health-followup p {
	margin: 0;
	font-size: 14px;
	line-height: 1.55;
}

/* ------------------------------------------------------------------
   Native Stock "Process" page (scoped). Accordion of procedural sections
   plus three evaluator tables. Uses the same <details> pattern as the
   Health page, with tables borrowed from the breeder-directory style.
------------------------------------------------------------------ */
.ns-deadlines {
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 16px 18px;
	margin: 0 0 28px;
}
.ns-deadlines .kicker {
	margin: 0 0 10px;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.ns-deadlines dl {
	display: grid;
	grid-template-columns: max-content 1fr;
	column-gap: 14px;
	row-gap: 4px;
	margin: 0 0 10px;
	font-size: 13px;
}
.ns-deadlines dt { color: #6b7c93; font-weight: 600; }
.ns-deadlines dd { margin: 0; color: #1f2933; }
.ns-deadlines p { font-size: 13px; margin: 8px 0 0; color: #4a5664; }

.process-accordion {
	list-style: none;
	padding: 0;
	margin: 0;
}
.process-accordion > li {
	border-bottom: 1px solid #d0d3d8;
}
.process-accordion > li:first-child { border-top: 1px solid #d0d3d8; }
.process-accordion > li:last-child { border-bottom: 0; }
.process-accordion summary {
	cursor: pointer;
	padding: 14px 0;
	list-style: none;
	display: flex;
	align-items: baseline;
}
.process-accordion summary::-webkit-details-marker { display: none; }
.process-accordion summary::before {
	content: "+";
	display: inline-block;
	width: 22px;
	color: #1f5132;
	font-weight: bold;
}
.process-accordion details[open] > summary::before { content: "\2212"; }
.process-summary { display: block; }
.process-summary-name {
	display: block;
	font-size: 17px;
	font-weight: bold;
	color: #1f5132;
	line-height: 1.3;
}
.process-summary-meta {
	display: block;
	font-size: 12px;
	color: #6b7c93;
	margin-top: 2px;
}
.process-detail {
	padding: 4px 0 22px 22px;
	line-height: 1.65;
}
.process-detail h4 {
	margin: 22px 0 6px;
	color: #1f5132;
}
.process-detail h4:first-child { margin-top: 6px; }
.process-list-note {
	font-size: 13px;
	color: #4a5664;
	margin: 0 0 10px;
	font-style: italic;
}
.process-forms { padding-left: 20px; margin: 0 0 12px; }
.process-forms li { margin-bottom: 6px; }

.evaluator-table {
	width: 100%;
	border-collapse: collapse;
	margin: 0 0 18px;
	font-size: 13px;
}
.evaluator-table thead th {
	text-align: left;
	padding: 8px 10px;
	background: #edeef1;
	border-bottom: 1px solid #d0d3d8;
	font-size: 11px;
	letter-spacing: .08em;
	text-transform: uppercase;
	color: #1f5132;
}
.evaluator-table tbody td {
	padding: 8px 10px;
	border-bottom: 1px solid #d0d3d8;
	vertical-align: top;
	line-height: 1.5;
}
.evaluator-table tbody tr:last-child td { border-bottom: 0; }
.evaluator-table tbody td:first-child {
	white-space: nowrap;
	font-weight: 600;
	color: #1f2933;
	width: 130px;
}
.evaluator-table tbody td:nth-child(2) {
	width: 180px;
	color: #1f2933;
}
.evaluator-table tbody td:last-child {
	color: #4a5664;
}
.evaluator-table a { color: #1f5132; }

@media (max-width: 720px) {
	.evaluator-table thead { display: none; }
	.evaluator-table, .evaluator-table tbody, .evaluator-table tr, .evaluator-table td {
		display: block;
		width: 100% !important;
	}
	.evaluator-table tbody td {
		border: 0;
		padding: 2px 0;
	}
	.evaluator-table tbody tr {
		padding: 10px 0;
		border-bottom: 1px solid #d0d3d8;
	}
	.evaluator-table tbody td:first-child {
		font-size: 11px;
		letter-spacing: .08em;
		text-transform: uppercase;
		color: #6b7c93;
	}
}

/* ------------------------------------------------------------------
   Standard Dissected page. Long-form consolidated page with 10
   anatomy sections, each an <article>. Standard text is italicized
   inside blockquotes; surrounding text is BCOA commentary.
------------------------------------------------------------------ */
.dissected-body { padding-top: 8px; }
.dissected-section {
	padding: 28px 0 36px;
	border-bottom: 1px solid #d0d3d8;
}
.dissected-section:last-of-type { border-bottom: 0; }
.dissected-section h3 {
	font-size: 22px;
	color: #1f5132;
	margin: 0 0 14px;
}
.dissected-section p { line-height: 1.65; }
.dissected-section blockquote {
	border-left: 3px solid #1f5132;
	padding: 6px 14px 6px 18px;
	margin: 14px 0;
	background: #edeef1;
}
.dissected-section blockquote em,
.dissected-section blockquote strong em {
	font-style: italic;
	color: #1f2933;
}
.dissected-section img {
	max-width: 100%;
	height: auto;
	display: block;
	margin: 14px auto;
	border-radius: 3px;
}
.dissected-section .prepared-by {
	font-size: 13px;
	color: #6b7c93;
	font-style: italic;
	margin: 0 0 16px;
}
.dissected-back {
	margin-top: 18px;
	font-size: 12px;
	text-align: right;
}
.dissected-back a { color: #1f5132; text-decoration: none; }
.dissected-back a:hover { text-decoration: underline; }

/* Section page-jump nav on the dissected intro */
#intro .page-jump {
	font-size: 13px;
	color: #4a5664;
	margin-top: 10px;
	line-height: 1.65;
}
#intro .page-jump a { color: #1f5132; }

/* ------------------------------------------------------------------
   /basenji/ overview page (scoped). Layout + rhythm only; type sizes
   stay at the site defaults from typography.css so the page reads at
   the same scale as the rest of the site.
------------------------------------------------------------------ */
.basenji-overview #intro h2 {
	color: #1f5132;
	margin: 0 0 8px;
}
.basenji-overview #intro .lede {
	margin: 0;
	max-width: 640px;
}

/* Facts sidebar - quieter than gray_box, label/value pairs */
.basenji-overview .facts {
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 14px 16px;
}
.basenji-overview .facts h4 {
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #1f5132;
	margin: 0 0 10px;
}
.basenji-overview .facts dl { margin: 0; }
.basenji-overview .facts dt {
	color: #6b7c93;
	font-weight: 600;
	margin-top: 5px;
}
.basenji-overview .facts dt:first-of-type { margin-top: 0; }
.basenji-overview .facts dd { margin: 0 0 2px; color: #1f2933; }

/* Section headings carry the green accent; size stays template default */
.basenji-overview > section > h3 { color: #1f5132; margin: 0 0 10px; }
.basenji-overview .section-intro { color: #4a5664; max-width: 760px; margin: 0 0 22px; }

/* Article rows: square photos at 220px, alternating sides. The flip
   variant needs explicit grid-column on the children -- swapping the
   grid-template-columns alone doesn't flip visual order, because the
   photo is DOM-first and auto-places into the first column either way. */
.basenji-overview .iab-row,
.basenji-overview .iab-row-flip {
	grid-template-columns: 220px 1fr;
	gap: 22px;
	padding: 22px 0;
	border-bottom: 1px solid #d0d3d8;
}
.basenji-overview .iab-row-flip { grid-template-columns: 1fr 220px; }
.basenji-overview .iab-row-flip > .iab-photo { grid-column: 2; }
.basenji-overview .iab-row-flip > .iab-text  { grid-column: 1; grid-row: 1; }
.basenji-overview .iab-row:last-of-type,
.basenji-overview .iab-row-flip:last-of-type {
	border-bottom: 0;
}
.basenji-overview .iab-photo { aspect-ratio: 1 / 1; }
/* On mobile the global .iab-photo img caps height at 220px; the Overview
   page uses a 1:1 container, so let the image fill the square instead.
   Also need to STACK the photo and text since the global mobile rule
   gets outranked by .basenji-overview .iab-row (2-class selector). */
@media (max-width: 720px) {
	.basenji-overview .iab-photo img { max-height: none; }
	.basenji-overview .iab-row,
	.basenji-overview .iab-row-flip {
		grid-template-columns: 1fr;
		gap: 16px;
	}
	.basenji-overview .iab-row-flip > .iab-photo { grid-column: 1; order: -1; }
	.basenji-overview .iab-row-flip > .iab-text  { grid-column: 1; grid-row: auto; }
}
/* Match article h3/p to site defaults; remove the iab-row bumps */
.basenji-overview .iab-text h3 {
	font-size: 18px;
	line-height: 21px;
	color: #1f2933;
	margin: 0 0 8px;
}
.basenji-overview .iab-text p {
	font-size: 14px;
	line-height: 1.65;
	color: #1f2933;
	margin: 0 0 10px;
}
.basenji-overview .iab-text a { color: #1f5132; }

@media (max-width: 720px) {
	.basenji-overview .iab-row,
	.basenji-overview .iab-row-flip { grid-template-columns: 1fr; }
	.basenji-overview .iab-row-flip > .iab-photo { order: -1; }
	.basenji-overview .iab-photo { aspect-ratio: 1 / 1; max-width: 280px; }
}

/* ------------------------------------------------------------------
   Members roster page (/members/roster/). Active members grouped by
   state, with optional skills tags.
------------------------------------------------------------------ */
.roster-jumps {
	display: flex;
	flex-wrap: wrap;
	gap: 6px 10px;
	font-size: 13px;
	margin: 0 0 24px;
	padding: 12px 14px;
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
}
.roster-jumps a {
	color: #1f5132;
	text-decoration: none;
	padding: 2px 6px;
	border-radius: 2px;
}
.roster-jumps a:hover { background: #d0d3d8; }
.roster-jump-count {
	display: inline-block;
	margin-left: 3px;
	color: #6b7c93;
	font-size: 11px;
}
.roster-state {
	margin: 24px 0 8px;
	padding-bottom: 4px;
	border-bottom: 1px solid #d0d3d8;
	color: #1f5132;
	font-size: 18px;
}
.roster-state-count { color: #6b7c93; font-size: 13px; font-weight: normal; }
.roster-list {
	list-style: none;
	padding: 0;
	margin: 0 0 20px;
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(240px, 1fr));
	gap: 10px;
}
.roster-entry {
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
}
.roster-name { font-weight: 600; color: #1f2933; font-size: 14px; }
.roster-meta { font-size: 12px; color: #6b7c93; margin-top: 2px; }
.roster-meta span + span::before { content: " · "; }
.roster-plan { color: #1f5132; }
.roster-skills { margin-top: 6px; display: flex; flex-wrap: wrap; gap: 4px; }
.roster-skill {
	font-size: 11px;
	padding: 2px 6px;
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 10px;
	color: #4a5664;
}

/* ------------------------------------------------------------------
   Box-sizing reset. Without this, padded blocks like .ns-block,
   .form-block, .home-event grow past their parent column by the
   amount of their padding. Modern default since ~2014.
------------------------------------------------------------------ */
*, *::before, *::after { box-sizing: border-box; }

/* Nested grid_12 safety net. 960.css gives every .grid_12 an explicit
   940px width plus 10px gutters; nesting a grid_12 inside a grid_12
   parent forces the child wider than the parent. Auto-collapse it. */
.container_12 .grid_12 .grid_12 {
	width: auto;
	margin-left: 0;
	margin-right: 0;
	float: none;
	display: block;
}

/* ------------------------------------------------------------------
   Mobile fixes (2026-05-16, revised)
   The template's 960.css sets body { min-width: 960px } which kills
   mobile sizing. Clamp it here, force-fluid the 12-col grid, and
   replace the always-open dropdown with a collapsible card so the
   menu doesn't dump 60+ items at once.
------------------------------------------------------------------ */
@media (max-width: 959px) {
	html { -webkit-text-size-adjust: 100%; }
	html, body {
		min-width: 0 !important;
		max-width: 100% !important;
		overflow-x: hidden !important;
	}

	/* Force fluid container + grid. Some inherited rules sneak fixed
	   widths past the existing override; !important shuts them up. */
	.container_12 {
		width: 100% !important;
		max-width: 100% !important;
		box-sizing: border-box;
	}
	.container_12 [class*="grid_"] {
		width: auto !important;
		max-width: 100% !important;
		float: none !important;
		display: block !important;
		margin-left: 0 !important;
		margin-right: 0 !important;
		box-sizing: border-box;
	}
	.container_12 [class*="push_"],
	.container_12 [class*="pull_"] {
		left: 0 !important;
		right: 0 !important;
	}

	/* #main is float:left on desktop, so it shrinks to fit its content.
	   Pages with wide unwrappable content (pedigree charts, fixed-height
	   photo rows) would stretch that float past the viewport and break the
	   whole responsive layout. Unfloat it on mobile so it stays full-width. */
	#main { float: none !important; width: 100% !important; }

	/* Images and embeds: never overflow */
	img, video, iframe, table { max-width: 100% !important; height: auto; }

	/* ===== Nav ===== */
	#nav { position: relative; min-height: 44px; }

	/* When burger opens the nav, the primary list becomes a right-anchored
	   card sized to its longest TOP-LEVEL label. Submenus are hidden until
	   their parent button is tapped. */
	#nav.jqueryslidemenu.open > ul#primary-nav {
		position: absolute;
		top: 56px;
		right: 0;
		z-index: 200;
		width: max-content;
		max-width: calc(100vw - 32px);
		max-height: calc(100vh - 140px);
		overflow-y: auto;
		margin-left: auto;
		background: #fff;
		border: 1px solid #d0d3d8;
		border-radius: 4px;
		box-shadow: 0 4px 14px rgba(31, 41, 51, .08);
		padding: 4px 0;
	}
	#nav.jqueryslidemenu.open > ul#primary-nav > li {
		padding: 0 14px;
		border-top: 0 !important; /* override 1398 */
	}
	#nav.jqueryslidemenu.open > ul#primary-nav > li:not(:last-child) {
		border-bottom: 1px solid #d0d3d8;
	}
	#nav.jqueryslidemenu.open > ul#primary-nav > li > a,
	#nav.jqueryslidemenu.open > ul#primary-nav > li > button.nav-parent {
		padding: 10px 0 !important;
		white-space: nowrap;
		text-align: left;
		width: 100%;
		background: transparent;
		border: 0;
		font: inherit;
		color: inherit;
		cursor: pointer;
	}
	/* Chevron on parent buttons; flips when expanded */
	#nav.jqueryslidemenu.open > ul#primary-nav > li.has-children > button.nav-parent::after {
		content: " \25BE";
		display: inline-block;
		margin-left: 6px;
		transition: transform .15s ease;
	}
	#nav.jqueryslidemenu.open > ul#primary-nav > li.has-children.touch-open > button.nav-parent::after {
		transform: rotate(180deg);
	}

	/* Hide submenus by default at mobile; show only when parent is touch-open */
	#nav.jqueryslidemenu.open ul.submenu {
		display: none !important;
		position: static;
		box-shadow: none;
		border: 0;
		background: transparent;
		padding: 0 0 6px 14px;
		min-width: 0;
	}
	#nav.jqueryslidemenu.open li.touch-open > ul.submenu {
		display: block !important;
	}
	#nav.jqueryslidemenu.open ul.submenu li {
		border-top: 0 !important;
		padding: 0;
	}
	#nav.jqueryslidemenu.open ul.submenu li a {
		padding: 6px 0 !important;
		white-space: nowrap;
	}
}

/* ------------------------------------------------------------------
   Forms (.bcoa-form). Used by the e-ballot opt-in, membership
   application, reinstatement, and any future members-portal flows.
   Keep accessible: real labels, focus rings, large touch targets,
   no placeholder-only fields.
------------------------------------------------------------------ */
.bcoa-form {
	max-width: 720px;
	margin: 0 0 32px;
}
.form-block {
	margin: 0 0 22px;
	padding: 22px 26px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
}
.form-block h3 {
	margin: 0 0 16px;
	padding-bottom: 10px;
	border-bottom: 1px solid #d0d3d8;
	color: #1f5132;
	font-size: 15px;
	letter-spacing: .04em;
	text-transform: uppercase;
}
.form-row {
	margin: 0 0 14px;
}
.form-row label {
	display: block;
	font-size: 13px;
	font-weight: 600;
	color: #1f2933;
	margin: 0 0 4px;
}
.form-row .req {
	color: #842029;
	margin-left: 2px;
}
.form-row input[type="text"],
.form-row input[type="email"],
.form-row input[type="tel"],
.form-row input[type="number"],
.form-row input[type="date"],
.form-row select,
.form-row textarea {
	width: 100%;
	padding: 8px 10px;
	font: inherit;
	font-size: 14px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	box-sizing: border-box;
}
.form-row input:focus,
.form-row select:focus,
.form-row textarea:focus {
	outline: 2px solid #1f5132;
	outline-offset: 1px;
	border-color: #1f5132;
}
.form-row input[type="checkbox"],
.form-row input[type="radio"] {
	margin-right: 8px;
	transform: translateY(1px);
}
.form-check label {
	display: block;
	font-weight: normal;
	font-size: 14px;
	line-height: 1.5;
	cursor: pointer;
}
.form-hint {
	font-size: 12px;
	color: #6b7c93;
	margin: 4px 0 0;
	line-height: 1.45;
}
.form-meta {
	font-size: 12px;
	color: #6b7c93;
	margin: 14px 0 0;
}
.form-actions {
	margin: 20px 0 14px;
	display: flex;
	gap: 12px;
}
.form-fallback {
	font-size: 13px;
	color: #4a5664;
	line-height: 1.55;
	padding-top: 14px;
	border-top: 1px solid #d0d3d8;
}
.form-context {
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 14px 18px;
	margin: 0 0 22px;
}
.form-context .kicker {
	margin: 0 0 6px;
	font-size: 11px;
	letter-spacing: .14em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.form-context p { margin: 0; font-size: 13px; line-height: 1.55; }
.legal-text {
	font-size: 13px;
	line-height: 1.6;
	color: #1f2933;
	background: #edeef1;
	padding: 14px 18px;
	margin: 0 0 20px;
	border-radius: 3px;
}
.legal-text p { margin: 0 0 12px; }
.legal-text p:last-child { margin-bottom: 0; }
.form-check label {
	display: flex;
	gap: 10px;
	align-items: flex-start;
	font-size: 13px;
	line-height: 1.45;
}
.form-check input[type="checkbox"] {
	margin: 3px 0 0;
	flex-shrink: 0;
}

/* E-ballot waiver page-specific layout */
.eballot-waiver {
	margin: 0 0 28px;
}
.eballot-waiver h3 {
	font-size: 15px;
	letter-spacing: .06em;
	text-transform: uppercase;
	color: #1f5132;
	margin: 0 0 10px;
}
.eballot-form {
	max-width: 580px;
	margin: 0 0 24px;
}
.eballot-check {
	margin: 18px 0 6px;
}
.form-sign-row {
	display: grid;
	grid-template-columns: 1fr auto;
	gap: 14px;
	align-items: end;
}
.form-sign-submit { padding-bottom: 1px; /* align button to input baseline */ }
.eballot-fallback {
	padding: 14px 18px;
	background: #edeef1;
	border-left: 3px solid #1f5132;
	border-radius: 0 3px 3px 0;
	font-size: 13px;
	color: #4a5664;
	line-height: 1.55;
}
.eballot-fallback p { margin: 0; }
@media (max-width: 560px) {
	.form-sign-row { grid-template-columns: 1fr; }
}

/* Side-by-side fields (e.g., first name + last name) */
.form-row-split {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 14px;
}
.form-row-triple {
	display: grid;
	grid-template-columns: 2fr 1fr 1fr;
	gap: 14px;
}
@media (max-width: 560px) {
	.form-row-split,
	.form-row-triple { grid-template-columns: 1fr; }
}

/* Search box on the Native Stock landing dog directory */
.ns-year-search {
	margin: 14px 0 8px;
	display: flex;
	gap: 10px;
	align-items: center;
}
.ns-year-search input {
	flex: 1;
	max-width: 320px;
	padding: 7px 10px;
	font: inherit;
	font-size: 14px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
}
.ns-year-search input:focus {
	outline: 2px solid #1f5132;
	outline-offset: 1px;
}
.ns-year-search-meta {
	font-size: 12px;
	color: #6b7c93;
}
.ns-year-dog.is-hidden { display: none; }

/* ------------------------------------------------------------------
   /basenji/history-preview/ - vertical timeline layout
   Center line with year cards alternating left and right. Mobile
   collapses to a single column with the line on the left.
------------------------------------------------------------------ */
.timeline-v {
	list-style: none;
	padding: 0;
	margin: 18px auto 50px;
	max-width: 980px;
	position: relative;
}
.timeline-v::before {
	content: "";
	position: absolute;
	top: 0;
	bottom: 0;
	left: 50%;
	width: 3px;
	margin-left: -1.5px;
	background: #1f5132;
	border-radius: 2px;
}
.t-item {
	position: relative;
	width: 50%;
	padding: 0 38px 12px 0;
	box-sizing: border-box;
}
.t-item:nth-child(even) {
	margin-left: 50%;
	padding: 0 0 12px 38px;
}
.t-item::before {
	content: "";
	position: absolute;
	top: 18px;
	width: 18px;
	height: 18px;
	border-radius: 50%;
	background: #1f5132;
	border: 4px solid #fff;
	box-shadow: 0 0 0 1px #1f5132;
	right: -10px;
	z-index: 1;
}
.t-item:nth-child(even)::before {
	right: auto;
	left: -10px;
}
.t-card {
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 14px 18px 4px;
	position: relative;
}
.t-card::after {
	content: "";
	position: absolute;
	top: 22px;
	width: 22px;
	height: 1px;
	background: #1f5132;
	right: -22px;
}
.t-item:nth-child(even) .t-card::after {
	right: auto;
	left: -22px;
}
.t-year {
	font-family: 'InterVariable', Arial, sans-serif;
	font-size: 22px;
	font-weight: bold;
	color: #1f5132;
	margin: 0 0 6px;
	letter-spacing: .02em;
}
.t-body p {
	margin: 0 0 12px;
	line-height: 1.6;
	color: #1f2933;
}
.t-body img {
	max-width: 100%;
	height: auto;
	margin: 6px 0;
	border-radius: 2px;
	display: block;
}
.t-body a {
	color: #1f5132;
	text-decoration: underline;
}
.t-body a:hover { color: #143a23; }

/* Mobile collapse: single column with line on the left */
@media (max-width: 720px) {
	.timeline-v { padding-left: 28px; }
	.timeline-v::before {
		left: 8px;
		margin-left: 0;
	}
	.t-item,
	.t-item:nth-child(even) {
		width: 100%;
		margin-left: 0;
		padding: 0 0 22px 22px;
	}
	.t-item::before,
	.t-item:nth-child(even)::before {
		left: -22px;
		right: auto;
	}
	.t-card::after,
	.t-item:nth-child(even) .t-card::after {
		left: -16px;
		right: auto;
		width: 16px;
	}
}

/* Bulletin Board: pending issues (PDF not yet uploaded) render as a muted
   non-link tile so the date is still visible while we backfill the file. */
.bulletin-issue-list .bulletin-issue-pending {
	display: grid;
	grid-template-columns: 4em 1fr auto;
	gap: 10px;
	align-items: baseline;
	padding: 10px 12px;
	border: 1px dashed #d4d7dd;
	border-radius: 3px;
	background: #f3f4f6;
	color: #6b7c93;
	cursor: not-allowed;
}
.bulletin-issue-list .bulletin-issue-pending .bulletin-issue-year { color: #6b7c93; }
.bulletin-issue-list .bulletin-issue-pending .bulletin-issue-size {
	font-size: 12px;
	color: #6b7c93;
	font-style: italic;
}

/* Find a Breeder: screening-questions accordion at top of page */
.screening-questions {
	margin: 0 0 32px;
}
.screening-questions > p {
	margin: 0 0 12px;
}
.screening-accordion {
	list-style: none;
	padding: 0;
	margin: 18px 0 0;
}
.screening-accordion > li {
	margin-bottom: 8px;
}
.screening-accordion summary {
	cursor: pointer;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	font-weight: bold;
	list-style: none;
	display: flex;
	align-items: baseline;
	gap: 10px;
}
.screening-accordion summary::-webkit-details-marker { display: none; }
.screening-accordion summary::after {
	content: "+";
	color: #1f5132;
	font-weight: bold;
	margin-left: auto;
}
.screening-accordion details[open] > summary::after { content: "\2212"; }
.screening-num {
	display: inline-block;
	min-width: 1.6em;
	color: #1f5132;
	font-weight: bold;
}
.screening-accordion details > p {
	margin: 0;
	padding: 14px 18px 16px 30px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-top: 0;
	border-radius: 0 0 3px 3px;
	line-height: 1.6;
}

/* ------------------------------------------------------------------
   Members archive pages (/members/bulletin/, /members/bulletin-board/)
   Search bar + decade-collapsed listing pattern.
------------------------------------------------------------------ */
.archive-search {
	margin: 0 0 22px;
	display: flex;
	gap: 12px;
	align-items: center;
	background: #edeef1;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	padding: 12px 14px;
}
.archive-search input {
	flex: 1;
	max-width: 480px;
	padding: 8px 12px;
	font: inherit;
	font-size: 15px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
}
.archive-search input:focus {
	outline: 2px solid #1f5132;
	outline-offset: 1px;
}
.archive-search-count {
	font-size: 13px;
	color: #6b7c93;
}

.bulletin-decade-d {
	margin-bottom: 14px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
}
.bulletin-decade-d summary {
	cursor: pointer;
	padding: 14px 18px;
	background: #fff;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	list-style: none;
	display: flex;
	align-items: baseline;
	gap: 14px;
}
.bulletin-decade-d summary::-webkit-details-marker { display: none; }
.bulletin-decade-d summary::after {
	content: "+";
	margin-left: auto;
	color: #1f5132;
	font-weight: bold;
	font-size: 20px;
	line-height: 1;
}
.bulletin-decade-d[open] > summary::after { content: "\2212"; }
.bulletin-decade-label {
	font-family: 'InterVariable', Arial, sans-serif;
	font-size: 22px;
	font-weight: bold;
	color: #1f5132;
}
.bulletin-decade-count {
	font-size: 12px;
	color: #6b7c93;
	text-transform: uppercase;
	letter-spacing: .06em;
}
.bulletin-decade-d > ul.bulletin-issue-list {
	padding: 14px 18px 18px;
	border-top: 1px solid #d0d3d8;
}
.bulletin-decade-d.is-empty {
	opacity: .4;
}
.archive-row.is-hidden { display: none; }

/* Documents page list rows inside a category details block. */
.bulletin-decade-d > .docs-cat-desc {
	margin: 0;
	padding: 12px 18px 4px;
	border-top: 1px solid #d0d3d8;
	color: #555;
	font-size: 14px;
}
.bulletin-decade-d > ul.docs-list {
	list-style: none;
	padding: 8px 18px 18px;
	margin: 0;
}
.bulletin-decade-d > ul.docs-list:first-of-type {
	border-top: 1px solid #d0d3d8;
	padding-top: 14px;
}
.bulletin-decade-d > .docs-cat-desc + ul.docs-list {
	border-top: 0;
	padding-top: 4px;
}
.docs-list li { margin: 0; padding: 0; }
.docs-list li + li { margin-top: 6px; }
.docs-list a,
.docs-list .docs-list-pending {
	display: grid;
	grid-template-columns: minmax(220px, 1.2fr) 2fr auto;
	gap: 14px;
	align-items: baseline;
	padding: 10px 12px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 2px;
	text-decoration: none;
	color: #1f2933;
	font-size: 14px;
}
.docs-list a:hover {
	border-color: #1f5132;
	background: #edeef1;
}
.docs-list .doc-title {
	font-weight: bold;
	color: #1f5132;
}
.docs-list .doc-note {
	color: #444;
}
.docs-list .doc-meta {
	display: flex;
	gap: 12px;
	align-items: baseline;
	font-size: 12px;
	color: #6b7c93;
	white-space: nowrap;
}
.docs-list .doc-date {
	font-variant-numeric: tabular-nums;
}
.docs-list .doc-badge {
	display: inline-block;
	padding: 1px 7px;
	font-size: 10px;
	font-weight: 600;
	letter-spacing: .04em;
	text-transform: uppercase;
	border-radius: 9px;
	line-height: 1.5;
}
.docs-list .doc-badge-public {
	background: #e8efe6;
	color: #4a6b3f;
}
.docs-list .docs-list-pending {
	opacity: .55;
	cursor: default;
}
.docs-list .docs-list-pending .doc-title {
	color: #6b6256;
}
@media (max-width: 720px) {
	.docs-list a,
	.docs-list .docs-list-pending {
		grid-template-columns: 1fr;
		gap: 4px;
	}
	.docs-list .doc-meta {
		justify-content: flex-start;
	}
}

/* ============================================================
   HOME PAGE - random hero image
   Single image, picked at page load by JS. Replaces the
   prior Swiper carousel. ~520px tall on desktop, collapses on mobile.
   ============================================================ */
.home-hero {
	width: 100%;
	height: 520px;
	overflow: hidden;
	background: #1f2933;
	border-radius: 4px;
	position: relative;
}
.home-hero img {
	width: 100%;
	height: 100%;
	object-fit: cover;
	object-position: center;
	display: block;
}
.hero-name-bar {
	position: absolute;
	left: 0;
	right: 0;
	bottom: 0;
	background: rgba(20, 25, 30, .72);
	color: #fff;
	padding: 8px 20px;
	font-size: 12px;
	line-height: 1.4;
	text-align: right;
	pointer-events: none;
}
@media (max-width: 720px) {
	.hero-name-bar { font-size: 10px; }
}
.hero-name-bar-text {
	font-weight: normal;
	display: inline-block;
}
@media (max-width: 760px) {
	.home-hero { height: 340px; }
}
@media (max-width: 480px) {
	.home-hero { height: 240px; }
}

/* ============================================================
   HOME PAGE - Palette preview widget (DEMO, remove for production)
   Click a card to apply that palette across the site. Choice
   persists in localStorage. Reset returns to the working palette.
   ============================================================ */
.palette-demo-intro {
	background: #edeef1;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	padding: 14px 18px;
	margin: 0 0 20px;
}
.palette-demo-intro .kicker {
	margin: 0 0 4px;
	font-size: 11px;
	letter-spacing: .12em;
	text-transform: uppercase;
	color: #1f5132;
	font-weight: bold;
}
.palette-demo-intro p:last-child { margin: 0; font-size: 14px; }

.palette-grid {
	display: grid;
	grid-template-columns: repeat(auto-fill, minmax(260px, 1fr));
	gap: 14px;
}
.palette-card {
	all: unset;
	display: flex;
	flex-direction: column;
	gap: 0;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-radius: 4px;
	cursor: pointer;
	overflow: hidden;
	transition: border-color .12s ease, box-shadow .12s ease;
}
.palette-card:hover, .palette-card:focus-visible {
	border-color: #1f5132;
	box-shadow: 0 4px 12px rgba(31, 81, 50, .12);
	outline: 0;
}
.palette-card.is-active {
	border-color: #1f5132;
	box-shadow: 0 0 0 2px #1f5132 inset;
}
.palette-swatches {
	display: flex;
	height: 56px;
}
.palette-swatch { flex: 1; }
.palette-card-body { padding: 12px 14px; }
.palette-name {
	display: block;
	font-weight: bold;
	font-size: 14px;
	color: #1f2933;
	margin: 0 0 4px;
}
.palette-desc {
	display: block;
	font-size: 13px;
	color: #6b7c93;
	line-height: 1.5;
}
.palette-demo-footer {
	margin-top: 16px;
	display: flex;
	gap: 14px;
	align-items: center;
	font-size: 13px;
	color: #6b7c93;
}


/* Committees page: 2-column grid, reading order left-to-right.
   Uses CSS grid (not column-count) so an odd card count doesn't leave a
   large whitespace gap below the shorter column. */
.contact-columns {
	display: grid;
	grid-template-columns: repeat(2, 1fr);
	gap: 14px 18px;
	margin-bottom: 0;
}
.contact-columns .contact-card {
	margin: 0;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
}
.contact-columns .contact-position {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #1f5132;
	font-weight: bold;
	margin-bottom: 6px;
}
.contact-columns .contact-chair {
	margin: 0 0 8px;
}
.contact-columns .contact-chair:last-child { margin-bottom: 0; }
.contact-columns .contact-name {
	font-weight: bold;
	color: #1f2933;
	margin-bottom: 2px;
}
.contact-columns .contact-email,
.contact-columns .contact-email-pending {
	font-size: 12px;
}
.contact-columns .contact-email-pending {
	color: #8a6d3b;
	font-style: italic;
}
@media (max-width: 600px) {
	.contact-columns { grid-template-columns: 1fr; }
}

/* Basenji overview banner - centered, max 600px native width. */
.basenji-overview-banner {
	text-align: center;
	margin: 0 0 20px;
}
.basenji-overview-banner img {
	max-width: 100%;
	height: auto;
	display: inline-block;
}

/* Officers section: row of cards (left-to-right). Same card visual style
   as .contact-columns but laid out horizontally instead of column-major. */
.contact-row {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 14px;
	margin-bottom: 28px;
}
@media (max-width: 760px) {
	.contact-row { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 480px) {
	.contact-row { grid-template-columns: 1fr; }
}
.contact-row .contact-card {
	margin: 0;
	padding: 12px 14px;
	background: #fff;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
}
.contact-row .contact-position {
	font-size: 11px;
	text-transform: uppercase;
	letter-spacing: .08em;
	color: #1f5132;
	font-weight: bold;
	margin-bottom: 6px;
}
.contact-row .contact-chair { margin: 0; }
.contact-row .contact-name {
	font-weight: bold;
	color: #1f2933;
	margin-bottom: 2px;
}
.contact-row .contact-email,
.contact-row .contact-email-pending { font-size: 12px; }
.contact-row .contact-email-pending {
	color: #8a6d3b;
	font-style: italic;
}

/* Basenji overview intro row: photo + at-a-glance side-by-side */
.basenji-intro-row {
	display: grid;
	grid-template-columns: 1fr 280px;
	gap: 22px;
	align-items: start;
	margin: 0;
}
.basenji-intro-photo {
	grid-column: 1;
}
.basenji-intro-photo img {
	width: 100%;
	max-width: 600px;
	height: auto;
	display: block;
	border-radius: 3px;
	margin-bottom: 14px;
}
.basenji-intro-photo p {
	margin: 0 0 12px;
	line-height: 1.55;
}
.basenji-intro-photo p:last-child { margin-bottom: 0; }
.basenji-intro-photo p.lede {
	font-size: 17px;
	font-style: italic;
	color: #1f2933;
}
.basenji-intro-row .facts {
	grid-column: 2;
	margin: 0;
	float: none;
}
@media (max-width: 960px) {
	.basenji-intro-row {
		grid-template-columns: 1fr;
	}
	.basenji-intro-row .facts {
		grid-column: 1;
		max-width: 600px;
	}
}

/* Find-a-breeder outer screening collapsible */
.screening-outer {
	margin: 0 0 22px;
	border: 1px solid #d0d3d8;
	border-left: 4px solid #1f5132;
	border-radius: 0 3px 3px 0;
	background: #fff;
}
.screening-outer-summary {
	cursor: pointer;
	list-style: none;
	padding: 14px 18px;
	display: flex;
	align-items: baseline;
	gap: 14px;
}
.screening-outer-summary::-webkit-details-marker { display: none; }
.screening-outer-summary::after {
	content: "+";
	margin-left: auto;
	color: #1f5132;
	font-weight: bold;
	font-size: 22px;
	line-height: 1;
}
.screening-outer[open] > .screening-outer-summary::after { content: "\2212"; }
.screening-outer-summary h3 {
	margin: 0;
}
.screening-outer > .screening-questions {
	padding: 4px 18px 18px;
	border-top: 1px solid #d0d3d8;
}

/* recommended reading - bibliography list with cover thumb rows */
.reading-list p { margin-bottom: 12px; line-height: 1.55; }
.reading-list h3 { margin-top: 28px; }
.reading-thumbs {
	display: flex;
	flex-wrap: wrap;
	gap: 10px;
	align-items: flex-end;
	margin: 10px 0 16px;
}
.reading-thumbs img {
	border: 1px solid #d0d3d8;
	height: auto;
	max-height: 150px;
}


/* breeder-directory search */
.breeder-search-row {
	display: flex;
	align-items: center;
	gap: 12px;
	margin: 0 0 12px;
	flex-wrap: wrap;
}
.breeder-search {
	flex: 1 1 280px;
	max-width: 420px;
	padding: 8px 12px;
	font-family: inherit;
	font-size: 14px;
	border: 1px solid #d0d3d8;
	border-radius: 3px;
	background: #fff;
	color: #1f2933;
}
.breeder-search:focus {
	outline: 2px solid #1f5132;
	outline-offset: 1px;
	border-color: #1f5132;
}
.breeder-search-count {
	font-size: 13px;
	color: #6b7c93;
}

/* mobile/narrow-viewport defensive rules - stack grids, prevent image overflow */
@media (max-width: 600px) {
	.doc-grid,
	.health-cards,
	.coloring-grid,
	.mentor-grid,
	.contact-grid,
	.breeder-grid,
	.club-grid {
		grid-template-columns: 1fr;
	}
	.reading-thumbs img,
	.coloring-thumb img,
	.breeder-card img,
	.club-logo img {
		max-width: 100%;
		height: auto;
	}
	.coloring-thumb { height: auto; min-height: 200px; }
	/* Long words/URLs in definition lists wrap instead of overflowing */
	.glossary-list dd,
	.timeline-list dd,
	.health-detail p,
	.health-detail li {
		overflow-wrap: anywhere;
	}
	/* Site-wide: no image escapes its container */
	img { max-width: 100%; height: auto; }
}
