/*
Theme Name: WinePathway
Theme URI: https://winepathway.site/
Description: Editorial child theme for WinePathway, built on Twenty Twenty-Five. Custom templates, design tokens, breadcrumbs, technical SEO helpers, and category landing pages.
Author: WinePathway
Template: twentytwentyfive
Version: 1.1.1
Requires at least: 6.7
Tested up to: 7.1
Requires PHP: 7.4
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: winepathway
*/

/* ---------- Base ---------- */
html { scroll-padding-top: 1rem; }
body { -webkit-font-smoothing: antialiased; text-rendering: optimizeLegibility; overflow-x: hidden; }
img { height: auto; }
:where(a):focus-visible,
:where(button, input, select, textarea, .wp-element-button):focus-visible {
	outline: 2px solid var(--wp--preset--color--accent-1);
	outline-offset: 3px;
	border-radius: 2px;
}
.skip-link.screen-reader-text:focus { background: var(--wp--preset--color--base); color: var(--wp--preset--color--accent-1); }

/* ---------- Logo (typographic) ---------- */
.wp-logo .wp-block-site-title,
.wp-block-site-title.wp-logo { margin: 0; }
.wp-logo a, .wp-block-site-title.wp-logo a {
	display: inline-flex; align-items: center; gap: .55rem;
	text-decoration: none; color: var(--wp--preset--color--contrast);
	font-family: var(--wp--preset--font-family--vollkorn);
	font-weight: 600; letter-spacing: -0.01em; line-height: 1;
}
.wp-logo a::before, .wp-block-site-title.wp-logo a::before {
	content: ""; flex: 0 0 auto; width: 1.15em; height: 1.15em;
	background: no-repeat center / contain url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 32 32'%3E%3Ccircle cx='16' cy='16' r='16' fill='%23682C3A'/%3E%3Cpath d='M10.5 8h11c0 5.2-2.2 8.4-5.5 8.9V22h3v2h-8v-2h3v-5.1C11.7 16.4 10.5 13.2 10.5 8z' fill='%23FAF8F4'/%3E%3C/svg%3E");
}

/* ---------- Header ---------- */
.wp-site-header { border-bottom: 1px solid var(--wp--preset--color--accent-6); background: var(--wp--preset--color--base); }
.wp-site-header .wp-block-navigation { font-size: var(--wp--preset--font-size--small); font-weight: 500; }
.wp-site-header .wp-block-navigation a:where(:not(.wp-element-button)):hover { color: var(--wp--preset--color--accent-1); text-decoration: underline; text-underline-offset: .3em; }
.wp-site-header .current-menu-item > a { color: var(--wp--preset--color--accent-1); }
.wp-site-header .wp-block-search__button { background: transparent; color: var(--wp--preset--color--contrast); border: 1px solid var(--wp--preset--color--accent-6); border-radius: 999px; padding: .45rem; }
.wp-site-header .wp-block-search__input { border-radius: 999px; border: 1px solid var(--wp--preset--color--accent-6); padding: .45rem .9rem; min-width: 12rem; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 2rem 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { gap: 1.1rem; font-size: 1.15rem; }

/* ---------- Breadcrumbs ---------- */
.wp-breadcrumbs { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); margin: 0; }
.wp-breadcrumbs ol { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: .25rem .5rem; }
.wp-breadcrumbs li { display: inline-flex; align-items: center; gap: .5rem; }
.wp-breadcrumbs li + li::before { content: "/"; color: var(--wp--preset--color--accent-6); }
.wp-breadcrumbs a { color: inherit; text-decoration: none; }
.wp-breadcrumbs a:hover { color: var(--wp--preset--color--accent-1); text-decoration: underline; }
.wp-breadcrumbs [aria-current] { color: var(--wp--preset--color--contrast); }

/* ---------- Eyebrow / kicker ---------- */
.wp-eyebrow, .wp-eyebrow a, .wp-card .wp-block-post-terms a, .taxonomy-category.wp-eyebrow a {
	font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: .09em; font-weight: 600;
	color: var(--wp--preset--color--accent-2); text-decoration: none;
}
.wp-eyebrow a:hover { text-decoration: underline; }

/* ---------- Cards ---------- */
.wp-card { background: var(--wp--preset--color--accent-3); border: 1px solid var(--wp--preset--color--accent-6); border-radius: 6px; overflow: hidden; height: 100%; display: flex; flex-direction: column; }
.wp-card .wp-card__body { padding: 1.25rem 1.25rem 1.5rem; display: flex; flex-direction: column; gap: .6rem; flex: 1; }
.wp-card img { display: block; width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.wp-card h3, .wp-card h2 { margin: 0; font-size: var(--wp--preset--font-size--large); line-height: 1.25; }
.wp-card h3 a, .wp-card h2 a { text-decoration: none; color: var(--wp--preset--color--contrast); }
.wp-card h3 a:hover, .wp-card h2 a:hover { color: var(--wp--preset--color--accent-1); text-decoration: underline; text-underline-offset: .2em; }
.wp-card p { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); }
.wp-card .wp-card__link { margin-top: auto; padding-top: .25rem; font-size: var(--wp--preset--font-size--small); font-weight: 600; color: var(--wp--preset--color--accent-1); }

/* Post cards produced by core/post-template */
.wp-post-grid .wp-block-post { display: flex; }
.wp-post-grid .wp-block-post > .wp-card { width: 100%; }
.wp-post-grid .wp-block-post-featured-image { margin: 0; }
.wp-post-grid .wp-block-post-excerpt { margin: 0; }
.wp-post-grid .wp-block-post-excerpt__excerpt { margin: 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); }

/* Category cards */
.wp-category-cards { display: grid; gap: 1.5rem; grid-template-columns: repeat(auto-fit, minmax(min(100%, 13.5rem), 1fr)); list-style: none; margin: 0; padding: 0; }
.wp-category-cards--compact { grid-template-columns: repeat(auto-fill, minmax(min(100%, 14rem), 1fr)); gap: 1rem; }
.wp-category-cards--compact .wp-card img { aspect-ratio: 16 / 9; }
.wp-category-cards--compact .wp-card h3 { font-size: var(--wp--preset--font-size--medium); }

/* ---------- Hero ---------- */
.wp-hero h1 { text-wrap: balance; }
.wp-hero .wp-block-image img { border-radius: 6px; aspect-ratio: 4 / 3; object-fit: cover; width: 100%; }
.wp-hero__lede { max-width: 34rem; }

/* ---------- Sections ---------- */
.wp-section-head { display: flex; justify-content: space-between; align-items: baseline; gap: 1rem; flex-wrap: wrap; }
.wp-section-head p { margin: 0; }
.wp-rule { border: 0; border-top: 1px solid var(--wp--preset--color--accent-6); }

/* ---------- Article ---------- */
.wp-dek { font-size: var(--wp--preset--font-size--large); line-height: 1.5; color: var(--wp--preset--color--accent-4); margin: 0; }
.wp-post-meta { font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); display: flex; flex-wrap: wrap; gap: .25rem 1rem; margin: 0; }
.wp-post-meta span + span::before { content: "·"; margin-right: 1rem; color: var(--wp--preset--color--accent-6); }
.wp-article .wp-block-post-featured-image img { border-radius: 6px; }
.wp-article .wp-block-post-featured-image figcaption, .wp-image-credit { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); }
.wp-article-body h2 { margin-top: 2.5em; }
.wp-article-body h3 { margin-top: 2em; }
.wp-article-body table { width: 100%; border-collapse: collapse; font-size: var(--wp--preset--font-size--small); }
.wp-article-body th, .wp-article-body td { border-bottom: 1px solid var(--wp--preset--color--accent-6); padding: .6rem .5rem; text-align: left; vertical-align: top; }
.wp-article-body thead th { border-bottom: 2px solid var(--wp--preset--color--contrast); }
.wp-article-body .wp-block-table { overflow-x: auto; }
.wp-article-body blockquote { border-left: 3px solid var(--wp--preset--color--accent-1); padding-left: 1.25rem; margin-left: 0; }
.wp-author-box { border-top: 1px solid var(--wp--preset--color--accent-6); padding-top: 1.5rem; display: flex; gap: 1rem; align-items: flex-start; }
.wp-author-box img { border-radius: 50%; }
.wp-author-box p { margin: .25rem 0 0; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--accent-4); }
.wp-related h2 { font-size: var(--wp--preset--font-size--x-large); }

/* ---------- Category archive ---------- */
.wp-archive-intro .wp-block-term-description { font-size: var(--wp--preset--font-size--large); line-height: 1.55; color: var(--wp--preset--color--accent-4); max-width: 46rem; }
.wp-archive-intro .wp-block-term-description p { margin: 0; }
.wp-category-hero img { width: 100%; aspect-ratio: 21 / 8; object-fit: cover; border-radius: 6px; display: block; }
.wp-empty-note { background: var(--wp--preset--color--accent-5); border-radius: 6px; padding: 1.5rem; }
.wp-empty-note p { margin: 0; }

/* ---------- Pagination ---------- */
.wp-block-query-pagination { gap: .5rem; font-size: var(--wp--preset--font-size--small); }
.wp-block-query-pagination-numbers .page-numbers { display: inline-block; min-width: 2.25rem; padding: .35rem .6rem; text-align: center; border: 1px solid var(--wp--preset--color--accent-6); border-radius: 4px; text-decoration: none; }
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); border-color: var(--wp--preset--color--accent-1); }

/* ---------- Footer ---------- */
.wp-site-footer { border-top: 1px solid var(--wp--preset--color--accent-6); background: var(--wp--preset--color--accent-5); }
.wp-site-footer .wp-block-navigation { font-size: var(--wp--preset--font-size--small); }
.wp-site-footer .wp-block-navigation a:hover { color: var(--wp--preset--color--accent-1); text-decoration: underline; }
.wp-footer-label { font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: .09em; font-weight: 600; color: var(--wp--preset--color--accent-1); margin: 0 0 .75rem; }
.wp-footer-fine { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); }

/* ---------- Forms (Contact Form 7) ---------- */
.wpcf7 form { display: grid; gap: 1.1rem; max-width: 40rem; }
.wpcf7 label { display: grid; gap: .35rem; font-weight: 600; font-size: var(--wp--preset--font-size--small); }
.wpcf7 input[type="text"], .wpcf7 input[type="email"], .wpcf7 textarea {
	width: 100%; box-sizing: border-box; font: inherit; font-weight: 400; font-size: 1rem;
	padding: .7rem .85rem; border: 1px solid #8C857C; border-radius: 4px; background: var(--wp--preset--color--base); color: var(--wp--preset--color--contrast);
}
.wpcf7 textarea { min-height: 10rem; }
.wpcf7 input[type="submit"] { justify-self: start; background: var(--wp--preset--color--accent-1); color: var(--wp--preset--color--base); border: 0; border-radius: 999px; padding: .8rem 1.6rem; font: inherit; font-weight: 600; cursor: pointer; }
.wpcf7 input[type="submit"]:hover { background: var(--wp--preset--color--contrast); }
.wpcf7 .wp-form-note { font-size: var(--wp--preset--font-size--x-small); color: var(--wp--preset--color--accent-4); margin: 0; }
.wpcf7-not-valid-tip { font-size: var(--wp--preset--font-size--x-small); color: #9b1c1c; font-weight: 500; }

/* ---------- Search results ---------- */
.wp-search-list .wp-block-post { padding: 1.5rem 0; border-bottom: 1px solid var(--wp--preset--color--accent-6); }

@media (max-width: 781px) {
	.wp-site-header .wp-block-search__input { min-width: 0; }
	.wp-category-hero img { aspect-ratio: 16 / 9; }
}
@media (prefers-reduced-motion: reduce) { * { scroll-behavior: auto !important; transition: none !important; } }

/* Tables: horizontal rules only */
.wp-article-body .wp-block-table th,
.wp-article-body .wp-block-table td { border-width: 0 0 1px; border-style: solid; border-color: var(--wp--preset--color--accent-6); }
.wp-article-body .wp-block-table thead { border-bottom: 2px solid var(--wp--preset--color--contrast); }
.wp-article-body .wp-block-table thead th { border-bottom-width: 0; }

/* Mobile menu overlay: left-aligned, generous tap targets */
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content,
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__container { align-items: flex-start !important; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item__content { padding: .35rem 0; }

/* Header search: on small screens the expanded field overlays the header row */
.wp-site-header { position: relative; }
@media (max-width: 600px) {
	.wp-site-header .wp-block-search:not(.wp-block-search__searchfield-hidden) {
		position: absolute; left: 1rem; right: 1rem; top: 50%; transform: translateY(-50%);
		z-index: 20; background: var(--wp--preset--color--base);
	}
	.wp-site-header .wp-block-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__inside-wrapper { width: 100% !important; }
	.wp-site-header .wp-block-search:not(.wp-block-search__searchfield-hidden) .wp-block-search__input { flex: 1; min-width: 0; }
}

/* "Explore Wine" dropdown (desktop) */
.wp-site-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: var(--wp--preset--color--accent-3); border: 1px solid var(--wp--preset--color--accent-6);
	border-radius: 6px; padding: .5rem 0; min-width: 19rem; box-shadow: 0 8px 24px rgba(41, 41, 41, .08);
}
.wp-site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .55rem 1.1rem; }
.wp-site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: var(--wp--preset--color--accent-5); }
.wp-site-header .wp-block-navigation-submenu__toggle { font-weight: 500; }
/* Mobile overlay: plain, left-aligned section list indented under "Explore Wine" */
.wp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation-item { align-items: flex-start !important; text-align: left; width: 100%; }
.wp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container {
	border: 0 !important; box-shadow: none !important; background: transparent !important; min-width: 0 !important;
	padding: .4rem 0 0 1rem !important; gap: .5rem; align-items: flex-start !important;
}
.wp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content { padding: .3rem 0 !important; font-size: 1.05rem; }
.wp-site-header .wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container .wp-block-navigation-item__content:hover { background: transparent; }
