/*!
Theme Name:    VPOC-26+ Child
Theme URI:     https://example.com/vpoc-26-plus-child
Author:        VPOC-26
Author URI:    https://example.com
Description:   Child theme for VPOC-26+. Extends the parent block theme with custom post types, taxonomies, and layout overrides.
Version:       0.2.8
Requires at least: 6.4
Tested up to:      6.7
Requires PHP:      8.0
Template:      vpoc-26-plus
License:      GNU General Public License v2 or later
License URI:  https://www.gnu.org/licenses/gpl-2.0.html
Text Domain:  vpoc-26-plus-child
Tags:         block-styles, full-site-editing, two-columns, left-sidebar, right-sidebar, blog
*/

/* =========================================
   MAGAZINE GRID LAYOUTS (child-theme CSS)
   Adds custom grid layouts for post query loops.
   
   SETUP NOTES:
   Query layout must NOT be using premade patterns or grid,
   group, row, details, etc. Just use WP's native query loop,
   choose "start blank", choose 3 or 5 images per page
   (important), give the loop container the mag layout class
   "mag-layout-1" (or 2, 3, 4, 5) and this CSS handles the rest.
   Might also have to choose "link to page" per block in page
   editor (working on that issue).
   
   Apply class via block editor: mag-layout-1 through mag-layout-5
========================================= */

.home .sswiper-container{
  margin-top:-20px
}
.wp-block-cover__inner-container {
  border-radius: 8px;  
}
.wp-block-cover__inner-container h1{
 color: rgb(19 77 128 / .93);
text-shadow: 1px 1px 2px #999,0px 1px 1px #fff;
letter-spacing: .03em;
}

.wp-block-query[class*="mag-layout-"] {
    --mag-gap: 12px;
    --mag-gap-small: 6px;
    --mag-img-ratio: 4 / 3;
}

.wp-block-query[class*="mag-layout-"] ul.wp-block-post-template {
    list-style: none;
    padding: 0;
    margin: 0;
    display: grid !important;
    gap: var(--mag-gap);
}

.wp-block-query[class*="mag-layout-"] li {
    display: flex;
    flex-direction: column;
    min-width: 0;
    margin: 0;
    height: 100%;
    position: relative;
    contain: layout paint style;
}

.wp-block-query[class*="mag-layout-"] .wp-block-post-featured-image {
    width: 100%;
    aspect-ratio: var(--mag-img-ratio);
    overflow: hidden;
    flex: 1 0 auto;
    height: 100%;
}

.wp-block-query[class*="mag-layout-"] .wp-block-post-featured-image img {
    width: 100%;
    height: 100%;
    object-fit: cover;
    display: block;
}

/* Overlay titles — injected by vpoc_inject_mag_layout_overlay_title()
   in block-renderers.php when the query block has a mag-layout-N class
   and no Post Title block is present. */
.wp-block-query[class*="mag-layout-"] .mag-layout-overlay-title {
    position: absolute;
    bottom: 0;
    left: 0;
    right: 0;
    z-index: 2;
    margin: 0;
    padding: 20px 16px 14px;
    color: #fff;

    width:100%;
    font-size: clamp(0.875rem, 2vw, 1.125rem);
    font-weight: 700;
    line-height: .8;
    text-shadow: 0 1px 3px rgba(0, 0, 0, 0.5);
    /*background: linear-gradient(transparent 0%, rgba(255,255,255, 0.55) 40%, rgba(0, 0, 0, 0.8) 100%); */
background:rgba(0,0,0,0.5);
    pointer-events: none;
}

.wp-block-query[class*="mag-layout-"] .mag-layout-overlay-title a {
    color: inherit;
    text-decoration: none;
    pointer-events: auto;
}

.wp-block-query[class*="mag-layout-"] .mag-layout-overlay-title a:hover {
    text-decoration: none;
}

/* Optional subtitle rendered below the title in the overlay.
   To use: add a custom field "overlay_subtitle" to any post.
   The value appears here in smaller, lighter text. */
.wp-block-query[class*="mag-layout-"] .mag-layout-overlay-subtitle {
    display: block;
    margin-bottom: 34px;
    font-size: 2.35em;
    font-weight: 400;
    line-height: 1.3;
    opacity: 0.85;
    pointer-events: auto;
    letter-spacing: 0.002em;
}
/* buttons (most are in parent json) */
.wp-element-button,
.wp-block-button__link {
	transition:
		background-color .2s ease,
		color .2s ease,
		border-color .2s ease,
		transform .2s ease;
}

/* pagination */
/* Pagination Wrapper */
.navigation.pagination,
.posts-navigation {
	margin-block: 2rem;
	display: flex;
	justify-content: center;
}

/* Number List */
.nav-links {
	display: flex;
	align-items: center;
	gap: 0.35rem;
	flex-wrap: wrap;
}

/* Links */
.page-numbers {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-width: 2rem;
	height: 2rem;
	padding-inline: 0.75rem;

	font-size: 0.875rem;
	font-weight: 500;
	line-height: 1;
	text-decoration: none;

border: none;
	background: transparent;
	border-radius: 4px;

	color: inherit;

	transition:
		background-color 0.2s ease,
		border-color 0.2s ease,
		color 0.2s ease;
}

/* Hover */
.page-numbers:hover {
	background: rgba(0,0,0,.05);
	border-color: var(--wp--preset--color--accent-3, #9ca3af);
}

/* Current Page */
.page-numbers.current {
	background: rgba(0,0,0,.08);
	color: inherit;
	font-weight: 700;
	border-color: var(--wp--preset--color--primary, #1f2937);
	
	cursor: default;
}

/* Dots */
.page-numbers.dots {
	border: 0;
	background: transparent;
	padding-inline: 0.25rem;
	min-width: auto;
}

/* Prev / Next */
.page-numbers.prev,
.page-numbers.next {
	padding-inline: 0.85rem;
}

.mag-layout-2 .wp-block-post-template > li {
	opacity: 0;
	animation: query-loop-fade .4s ease forwards;
}

.mag-layout-2 .wp-block-post-template > li:nth-child(1) { animation-delay: .05s; }
.mag-layout-2 .wp-block-post-template > li:nth-child(2) { animation-delay: .10s; }
.mag-layout-2 .wp-block-post-template > li:nth-child(3) { animation-delay: .15s; }
.mag-layout-2 .wp-block-post-template > li:nth-child(4) { animation-delay: .20s; }
.mag-layout-2 .wp-block-post-template > li:nth-child(5) { animation-delay: .25s; }
.mag-layout-2 .wp-block-post-template > li:nth-child(6) { animation-delay: .30s; }

@keyframes query-loop-fade {
	from {
		opacity: 0;
		transform: translateY(12px);
	}

	to {
		opacity: 1;
		transform: translateY(0);
	}
}

/*
 * HOVER EFFECTS for mag-layout images.
 *     transform: scale(1.05);
 *     filter: grayscale(1);
 *     filter: brightness(1.15);
 *     filter: brightness(0.8);
 *     transform: scale(1.03);
 *     filter: sepia(0.3);
 */

/* always keeps hover smooth regardless of effect */
.wp-block-query[class*="mag-layout-"] li {
    overflow: hidden;
}

.wp-block-query[class*="mag-layout-"] .wp-block-post-featured-image img {
    transition: transform 0.4s ease, filter 0.4s ease;
    will-change: transform;
}

.wp-block-query[class*="mag-layout-"] li:hover .wp-block-post-featured-image img {
    transform: scale(1.02);
}
/* Layout 1 — Hero left / 2 stacked right (3 posts) */
.wp-block-query.mag-layout-1 { --mag-gap: var(--mag-gap-small); }
.wp-block-query.mag-layout-1 ul.wp-block-post-template { grid-template-columns: 2fr 1fr; }
.wp-block-query.mag-layout-1 li:first-child { grid-row: span 2; }
/* Layout 2 — Hero left / 4-up right (5 posts) */
.wp-block-query.mag-layout-2 ul.wp-block-post-template { grid-template-columns: 2fr 1fr 1fr; grid-template-rows: repeat(2, 1fr); }
.wp-block-query.mag-layout-2 li:first-child { grid-column: 1; grid-row: 1 / 3; }
.wp-block-query.mag-layout-2 li:nth-child(2) { grid-column: 2; grid-row: 1; }
.wp-block-query.mag-layout-2 li:nth-child(3) { grid-column: 3; grid-row: 1; }
.wp-block-query.mag-layout-2 li:nth-child(4) { grid-column: 2; grid-row: 2; }
.wp-block-query.mag-layout-2 li:nth-child(5) { grid-column: 3; grid-row: 2; }
/* Layout 3 — Hero right / 4-up left (5 posts) */
.wp-block-query.mag-layout-3 ul.wp-block-post-template { grid-template-columns: 1fr 1fr 2fr; grid-template-rows: repeat(2, 1fr); }
.wp-block-query.mag-layout-3 li:first-child { grid-column: 3; grid-row: 1 / 3; }
.wp-block-query.mag-layout-3 li:nth-child(2) { grid-column: 1; grid-row: 1; }
.wp-block-query.mag-layout-3 li:nth-child(3) { grid-column: 2; grid-row: 1; }
.wp-block-query.mag-layout-3 li:nth-child(4) { grid-column: 1; grid-row: 2; }
.wp-block-query.mag-layout-3 li:nth-child(5) { grid-column: 2; grid-row: 2; }
/* Layout 4 — Hero top / 2-up rows (5 posts) */
.wp-block-query.mag-layout-4 ul.wp-block-post-template { grid-template-columns: repeat(2, 1fr); }
.wp-block-query.mag-layout-4 li:first-child { grid-column: 1 / -1; }
.wp-block-query.mag-layout-4 li:nth-child(2) { grid-column: 1; grid-row: 2; }
.wp-block-query.mag-layout-4 li:nth-child(3) { grid-column: 2; grid-row: 2; }
.wp-block-query.mag-layout-4 li:nth-child(4) { grid-column: 1; grid-row: 3; }
.wp-block-query.mag-layout-4 li:nth-child(5) { grid-column: 2; grid-row: 3; }
/* Layout 5 — Simple 3-up */
.wp-block-query.mag-layout-5 { --mag-gap: var(--mag-gap-small); }
.wp-block-query.mag-layout-5 ul.wp-block-post-template { grid-template-columns: repeat(3, 1fr); }

/* Tablet */
@media (max-width: 782px) and (min-width: 481px) {
    .wp-block-query[class*="mag-layout-"] ul.wp-block-post-template {
        grid-template-columns: repeat(2, 1fr) !important;
        grid-template-rows: auto !important;
    }
    .wp-block-query[class*="mag-layout-"] li:first-child { grid-column: 1 / -1 !important; grid-row: auto !important; }
    .wp-block-query[class*="mag-layout-"] li:not(:first-child) { grid-column: auto !important; grid-row: auto !important; }
}

/* Mobile */
@media (max-width: 480px) {
    .wp-block-query[class*="mag-layout-"] ul.wp-block-post-template { grid-template-columns: 1fr !important; }
    .wp-block-query[class*="mag-layout-"] li { grid-column: auto !important; grid-row: auto !important; }
}


/* select dropdown */


/*
 * STICKY HEADER
 */

body:not(.vpoc-header-is-sticky) header.wp-block-template-part {
    position: relative;
    z-index: 1000;
    width: 100%;
}

body.vpoc-header-is-sticky {
/* padding-top is set dynamically via JS */
}

body.vpoc-header-is-sticky header.wp-block-template-part {
    position: fixed;
    top: 0;
    left: 0;
    right: 0;
    z-index: 1000;
    animation: vpoc-header-slide-down 0.35s ease forwards;
}

/* Apply background and shadow only to the inner wrapper for smooth opacity transitions */
body.vpoc-header-is-sticky header.wp-block-template-part > .wp-block-group.alignfull {
    box-shadow: 0 2px 12px rgba(0, 0, 0, 0.08);
    transition: box-shadow 0.3s ease, background-color 0.2s ease;
}

/* Slide-down animation for when the header becomes sticky */
@keyframes vpoc-header-slide-down {
    0% {
        transform: translateY(-100%);
        opacity: 0.6;
    }
    100% {
        transform: translateY(0);
        opacity: 1;
    }
}

/* WP admin bar offset */
body.admin-bar.vpoc-header-is-sticky header.wp-block-template-part {
    top: 32px;
}

/* Mobile admin bar */
@media screen and (max-width: 782px) {
    body.admin-bar.vpoc-header-is-sticky header.wp-block-template-part {
        top: 46px;
    }
}

@media screen and (max-width: 600px) {
    body.admin-bar.vpoc-header-is-sticky header.wp-block-template-part {
        top: 0;
    }
}

/*
 * POST PICKER SHORTCODE STYLES
 * Matches the default appearance of Query Loop post items.
 * Each item is a linked card with featured image + title.
 */

.vpoc-post-picker-grid {
    display: grid;
    grid-template-columns: repeat(auto-fill, minmax(500px, 1fr));
    gap: 1.5rem;
}

.vpoc-post-picker-grid .vpoc-pp-card {
    display: block;
    text-decoration: none;
    color: inherit;
    overflow: hidden;
}

.vpoc-post-picker-grid .vpoc-pp-card:hover {
    opacity: 0.9;
}

.vpoc-post-picker-grid .vpoc-pp-card-image {
    width: 100%;
    overflow: hidden;
    background: var(--wp--preset--color--accent-2, #f5f5f5);
    border-radius: 4px;
}

.vpoc-post-picker-grid .vpoc-pp-card-image img {
    width: 100%;
    max-height: 300px;
    object-fit: cover;
    object-position: center 30%;
    display: block;
}

.vpoc-post-picker-grid .vpoc-pp-card-title {
    margin-top: 0.75rem;
    font-size: var(--wp--preset--font-size--medium, 1rem);
    font-weight: 600;
    line-height: 1.3;
    color: var(--wp--preset--color--foreground, #111);
}

/* Mobile: single column */
@media (max-width: 480px) {
    .vpoc-post-picker-grid {
        grid-template-columns: 1fr;
    }
}

/* --- Navigation block inline SVG icons --- */
.nav-icon {
	width: 1.1em;
	height: 1.1em;
	vertical-align: middle;
	fill: currentColor;
	display: inline-block;
}

/* Flatten heading tags used in nav labels (set via Appearance → Menus) */
.wp-block-navigation-item__label h1,
.wp-block-navigation-item__label h2,
.wp-block-navigation-item__label h3,
.wp-block-navigation-item__label h4,
.wp-block-navigation-item__label h5,
.wp-block-navigation-item__label h6 {
	font-size: inherit;
	font-weight: inherit;
	margin: 0;
	line-height: inherit;
	display: inline;
}

.steves-popup-overlay.steves-popup-drawer .steves-popup-close {
    position: static;
    display: block;
    margin: 15% 0 10px auto;
}

/*
 * HERO COVER PATTERN (Group-based)
 *
 * Background image via inline style; the ::before pseudo-element
 * provides the overlay.  Content is lifted above the overlay via
 * z-index on the inner group.
 *
 * Does NOT support video. For video, use "Hero Cover (Cover block)".
 */
.vpoc-hero-cover {
	position: relative;
	overflow: hidden;
}
.vpoc-hero-cover::before {
	content: '';
	position: absolute;
	inset: 0;
	background: rgba(0, 0, 0, 0.35);
	z-index: 1;
	pointer-events: none;
}
.vpoc-hero-cover > .wp-block-group {
	position: relative;
	z-index: 2;
}

.vpoc-hero-cover-content,
.vpoc-hero-block-content {
	max-width: var(--wp--style--global--content-size, 1280px);
	margin-left: 0;
	margin-right: auto;
}

/* footer stuff */
.footer-icon-list {
	padding: 30px 0;

}

.footer-icon-list ul {
	list-style: none;
	padding: 0;
	margin: 0;
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 1rem;
	
}

.footer-icon-list li {
	margin: 0;
	
}

.footer-icon-list a {
	display: flex;
	align-items: center;
	gap: .6rem;

	background:rgba(0,0,0,.55);
	padding: 8px 12px 8px 8px;

	border-radius: 4px;
	color: #fba50e;
	text-decoration: none;
	
}

.footer-icon-list a:hover {
	opacity: .85;
}

.footer-icon {
	display: block;
	width: 2rem;
	height: 2rem;

	background-color: #fff;
	border-radius: 4px;

	background-repeat: no-repeat;
	background-position: center;
	background-size: 70%;

	flex: 0 0 auto;
}


.footer-icon[data-icon="dollar-sign"] {
	background-image: url("assets/images/icons/dollar-sign.svg");
}

.footer-icon[data-icon="calendar-days"] {
	background-image: url("assets/images/icons/calendar-days.svg");
}

.footer-icon[data-icon="info-circle"] {
	background-image: url("assets/images/icons/circle-info.svg");
}

.footer-icon[data-icon="file-pdf"] {
	background-image: url("assets/images/icons/file-pdf.svg");
}

.footer-icon[data-icon="link"] {
	background-image: url("assets/images/icons/link.svg");
}

.footer-icon[data-icon="map-marker"] {
	background-image: url("assets/images/icons/map-marker.svg");
}

.footer-icon[data-icon="users"] {
	background-image: url("assets/images/icons/users.svg");
}

.footer-icon[data-icon="bus"] {
	background-image: url("assets/images/icons/bus.svg");
}

.footer-icon[data-icon="bicycle"] {
	background-image: url("assets/images/icons/bicycle.svg");
}

.footer-icon[data-icon="basketball"] {
	background-image: url("assets/images/icons/basketball.svg");
}

.footer-icon[data-icon="newspaper"] {
	background-image: url("assets/images/icons/newspaper.svg");
}

.footer-icon[data-icon="route"] {
	background-image: url("assets/images/icons/route.svg");
}

.footer-icon[data-icon="exclamation"] {
	background-image: url("assets/images/icons/exclamation.svg");
}


@media (max-width: 1180px) {

	.footer-icon-list ul {
		grid-template-columns: repeat(2, 1fr);
	}

}


@media (max-width: 680px) {

	.footer-icon-list ul {
		grid-template-columns: 1fr;
	}

}

/* footer mountains */
footer {
	position: relative;
	overflow: hidden;
}

.footer-mountains {
	position: absolute;
	bottom: 0;
	left: 0;
	width: 100%;
	overflow: hidden;
	height: 220px;
	pointer-events: none;
}

.footer-mountains svg {
	width: 100%;
	height: 100%;
	display: block;
}


/* layered mountain colors */
.mountain-far {
fill: black;
	opacity:.10;
}

.mountain-mid {
	fill: brown;
	opacity:.20;
}

.mountain-front {
	fill: orange;
	opacity:.38;
}

.snow {
	fill:white;
	opacity:.18;
}
.trees {
	fill: currentColor;
	opacity:.45;
}
.shrubs {
	fill: currentColor;
	opacity:.25;
}


.social-box {width:200px;text-align:center}
.social-facebook::before,
.social-instagram::before,
.social-youtube::before{
	content: "";
	display: inline-block;
	width: 2em;
	height: 2em;
	background:#fff;
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
    block-size: 2em;
}

.social-facebook::before {
	mask-image: url('assets/images/icons/facebook.svg');
	-webkit-mask-image: url('assets/images/icons/facebook.svg');
}

.social-instagram::before {
	mask-image: url('assets/images/icons/instagram.svg');
	-webkit-mask-image: url('assets/images/icons/instagram.svg');
}

.social-youtube::before {
	mask-image: url('assets/images/icons/youtube.svg');
	-webkit-mask-image: url('assets/images/icons/youtube.svg');
}
.social-facebook,
.social-instagram,
.social-youtube{
	display: inline-flex;
	align-items:stretch;
    background:rgba(0,0,0,.5);
    padding:10px;
    border-radius:4px;
    block-size: 2em;
    border-spacing: 1.5em;
justify-content:space-evenly;

}
.weather-link::before {
	mask-image: url('assets/images/icons/cloud-sun-rain.svg');
	-webkit-mask-image: url('assets/images/icons/cloud-sun-rain.svg');
	background:lightskyblue;
	content: "";
	display: inline-block;
	width: 2.5em;
	height: 2.5em;
	mask-position: center;
	mask-repeat: no-repeat;
	mask-size: contain;
	-webkit-mask-position: center;
	-webkit-mask-repeat: no-repeat;
	-webkit-mask-size: contain;
    block-size: 2em;
	


}
.weather-link {
	display: inline-flex;
	align-items:center;
    block-size: 2em;
    border-spacing: 1em;
justify-content:space-evenly;
    background:rgba(255,255,255,.5);
	padding:9px 14px;
	border-radius:5px
}

	.weather-link:hover {
    background:rgba(255,255,255,.8);
	
	
}


/* theme specific buttons for swiper/hideshow */
.sswiper-controls button {
	border: none;
	border-radius: 8px;
	padding: 8px 10px;
	font-size: 1rem;}
/* buttons for my swiper/hideshow on vpoc - can use images, svgs, etc in shortcode or by class */


 
.my-next-btn  {mask-image: url('assets/images/icons/arrow-alt-circle-right.svg');font-size:30px;color:red;background:rgba(255,255,255,.7);display:inline-block;width:60px;height:60px;vertical-align:middle;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url('assets/images/icons/arrow-alt-circle-right.svg');-webkit-mask-repeat:no-repeat;-webkit-mask-position:center	}

.my-prev-btn  {mask-image: url('assets/images/icons/arrow-alt-circle-right.svg');font-size:30px;color:red;background:rgba(255,255,255,.7);display:inline-block;width:60px;height:60px;vertical-align:middle;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url('assets/images/icons/arrow-alt-circle-left.svg');-webkit-mask-repeat:no-repeat;-webkit-mask-position:center	}

 .my-finish-btn {mask-image: url('assets/images/icons/arrow-right-to-bracket.svg');font-size:30px;color:red;background:white;display:inline-block;width:60px;height:60px;vertical-align:middle;mask-repeat:no-repeat;mask-position:center;-webkit-mask-image:url('assets/images/icons/arrow-right-to-bracket.svg');-webkit-mask-repeat:no-repeat;-webkit-mask-position:center	}


.cmmrm_nav .wp-block-navigation__container {
	list-style: none;
	margin: 0;
	padding: 0;

	display: flex;
	flex-wrap: wrap;
	gap: .75rem;
}

.cmmrm_nav .wp-block-navigation-item {
	margin: 0;
}

.cmmrm_nav .wp-block-navigation-item__content {
	display: block;
	padding: 1rem 1.25rem;

	text-decoration: none;
	color: inherit;

	background: #fff;
	border: 1px solid rgba(0,0,0,.08);
	border-radius: 10px;

	transition:
		background .2s ease,
		border-color .2s ease,
		transform .2s ease;
}

.cmmrm_nav .wp-block-navigation-item__content:hover,
.cmmrm_nav .wp-block-navigation-item__content:focus {
	background: rgba(0,0,0,.02);
	border-color: var(--wp--preset--color--primary);
	transform: translateX(4px);
}

.cmmrm_nav .wp-block-navigation-item__label {
	display: block;
	font-weight: 600;
	font-size: 1rem;
	line-height: 1.3;
}

.cmmrm_nav .wp-block-navigation-item__description {
	display: block;
	margin-top: .5rem;

	font-size: .875rem;
	line-height: 1.5;
	color: #666;
}

/* Current item */
.cmmrm_nav .current-menu-item .wp-block-navigation-item__content,
.cmmrm_nav .current-menu-ancestor .wp-block-navigation-item__content {
	border-left: 4px solid var(--wp--preset--color--primary);
	padding-left: calc(1.25rem - 4px);
}

/* Mobile menu spacing */
.cmmrm_nav .wp-block-navigation__responsive-container-content {
	padding: 1rem;
}


/* forms. (maybe go in parent??) */
fieldset {border:none;margin:0;padding:0}

:where(
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
	select,
	textarea
) {
	width: 100%;
	max-width: 100%;
	min-height: 3rem;

	padding: 0.75rem 1rem;

	font: inherit;
	line-height: 1.5;
	color: inherit;

	background: var(--wp--preset--color--base, #fff);
	border: 1px solid color-mix(
		in srgb,
		currentColor 15%,
		transparent
	);

	border-radius: 0.5rem;

	transition:
		border-color 0.2s ease,
		box-shadow 0.2s ease,
		background-color 0.2s ease;

	box-sizing: border-box;
}

textarea {
	min-height: 10rem;
	resize: vertical;
}



:where(
	input:not([type="checkbox"]):not([type="radio"]):not([type="submit"]),
	select,
	textarea
):focus {
	outline: none;

	border-color: var(--wp--preset--color--accent, currentColor);

	box-shadow:
		0 0 0 3px color-mix(
			in srgb,
			var(--wp--preset--color--accent, currentColor) 20%,
			transparent
		);
}



::placeholder {
	opacity: 0.65;
}



label {
	display: block;
	margin-bottom: 0.4rem;
	font-weight: 600;
}



form p,
form .form-field,
form .wpforms-field,
form .gfield {
	margin-bottom: 1.25rem;
}



select {
	appearance: none;

	background-image:
		url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='currentColor' stroke-width='2'%3E%3Cpolyline points='6 9 12 15 18 9'/%3E%3C/svg%3E");

	background-repeat: no-repeat;
	background-position: right 1rem center;
	background-size: 1rem;

	padding-right: 2.75rem;
}



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



input[type="submit"],
button[type="submit"] {
	border: none;
	cursor: pointer;
	font-size: inherit;
	font-weight: 600;
	padding: 0.8rem 1.4rem;
	border-radius: var(--wp--custom--button--radius, 6px);
	background: var(--wp--preset--color--button);
	color: var(--wp--preset--color--button-text);
}

input[type="submit"]:hover,
button[type="submit"]:hover {
	opacity: 0.92;
}

input[type="submit"]:active {
	transform: translateY(1px);
}




/* --- Downloads (Term Grouped Query) --- */
.vpoc-term-group {
	margin-bottom: 2rem;
}

.vpoc-term-heading {
	font-size: 1.5rem;
	font-weight: 700;
	margin: 0 0 1rem;
	padding-bottom: 0.5rem;
	border-bottom: 2px solid var(--wp--preset--color--accent-3, #ddd);
}

.vpoc-term-post {
	display: flex;
	flex-wrap: wrap;
	align-items: baseline;
	gap: 0.5rem 1rem;
	padding: 0.5rem 0;
	border-bottom: 1px solid var(--wp--preset--color--accent-1, #eee);
}

.vpoc-term-post-title {
	font-size: 1.25rem;
	font-weight: 200;
	margin: 0;
	flex: 1 1 auto;
	min-width: 200px;
}

.vpoc-term-post-title a {
	text-decoration: none;
	color: var(--wp--preset--color--accent-3, #a6093d);
}

.vpoc-term-post-title a:hover {
	text-decoration: underline;
}

.vpoc-term-post-links {
	display: flex;
	gap: 0.5rem;
	flex-shrink: 0;
}

.vpoc-term-post-links a.wp-element-button {
	display: inline-flex;
	align-items: center;
	gap: 0.3rem;
	padding: 0.3rem 0.75rem;
	text-decoration: none;
	font-size: 0.85rem;
	font-weight: 600;
	border-radius: 4px;
}


.vpoc-term-post-links .vpoc-dl-icon {
	width: 1em;
	height: 1em;
	fill: currentColor;
	display: inline-block;
	vertical-align: middle;
}

/* --- Navigation dropdown polish --- */
@media (min-width: 600px) {
	.wp-block-navigation .has-child .wp-block-navigation__submenu-container {
		padding: 0.5rem;
		background:var(--wp--preset--color--sub-nav,pink);
		color:#dddbd2
	}
	.wp-block-navigation__submenu-container {
		min-width: 280px !important;

		
	}
	.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content {
		flex-direction: column;
		align-items: flex-start;
		padding: 0.4rem 0.75rem;
		border-radius: 4px;
		transition: background .15s ease;

	
	}
	.wp-block-navigation .has-child .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover {
				background:var(--wp--preset--color--accent-3,pink);
	}
	.wp-block-navigation .wp-block-navigation-item__description {
		display: block;
		font-size: 0.8em;
		opacity: .65;
		margin-top: 0.1em;
	}
	
		/* Submenu arrow: move to left and point left to indicate submenu
	   opens outward to the left from the parent item. */
	.wp-block-navigation .has-child {
		display: flex;
		align-items: center;
		gap: 0.15em;
	}
	.wp-block-navigation .has-child .wp-block-navigation__submenu-icon {
		order: -1;
		transform: scaleX(-1);
		margin-left: 0;
	}
}


/* weather stuff */
.wp-forecast-curr{color:#000}
div.wp-forecast-fc{margin:0 auto}
div.wp-forecast-curr-details{text-align:left;font-size:150%;columns:2}
div.wp-forecast-curr-block{padding:10px;background:lightblue}
div.wp-forecast-curr-right{padding:10px;font-size:30px;color:#fff;}
div.wp-forecast-fc-block{font-size:130%;background:rgba(255,255,255,.3);margin:4px;width:100%}
div.wp-forecast-fc-right{font-size:16px;margin:0 auto;background:#fff;width:90%}
div.wp-forecast-fc-left{width:10%}
div.wpff_nav{text-align:center;margin-left:auto;margin-right:auto;height:40px;font-size:24px;}
.wp-forecast-curr-head {font-size:150% !important;font-weight:bold;text-align:left !important }
div.wp-forecast-fc-head{font-weight:600;text-align:left;font-size:150%;width:100%}

/* --- Responsive image alignment --- */
@media (max-width: 768px) {
  .alignleft,
  .alignright {
    float: none;
    display: block;
    margin: 1rem auto;
  }
  .alignleft img,
  .alignright img {
    width: 100%;
  }
}
