/* Pinot Squirrel: layout and components the block styles in theme.json do not cover. */

:root {
	--ps-radius-lg: 1.5rem;
	--ps-radius: 0.8rem;
	--ps-shadow: 0 1px 2px rgba(17, 24, 39, 0.04), 0 10px 30px -14px rgba(48, 45, 85, 0.2);
	--ps-pink: var(--wp--preset--color--pink);
	--ps-indigo: var(--wp--preset--color--indigo);
	--ps-line: var(--wp--preset--color--line);
	--ps-muted: var(--wp--preset--color--muted);
}

body {
	background:
		radial-gradient(60rem 30rem at -10% -5%, rgba(244, 54, 118, 0.07), transparent 60%),
		radial-gradient(50rem 30rem at 110% 0%, rgba(48, 45, 85, 0.06), transparent 60%),
		var(--wp--preset--color--ground);
	-webkit-font-smoothing: antialiased;
	text-rendering: optimizeLegibility;
}

:where(a) { text-underline-offset: 0.18em; }
:focus-visible { outline: 3px solid var(--ps-pink); outline-offset: 2px; border-radius: 4px; }
.screen-reader-text:focus { background: #fff; padding: 0.5rem 1rem; z-index: 1000; }

@media (prefers-reduced-motion: reduce) {
	* { transition: none !important; animation: none !important; scroll-behavior: auto !important; }
}

/* ---------- Header ---------- */
.site-header { border-bottom: 1px solid var(--ps-line); position: relative; z-index: 20; }
.site-header__row { min-height: 4.5rem; }
.site-header .site-header__logo img { width: auto; height: clamp(58px, 7vw, 88px); max-width: 60vw; }
.site-header .wp-block-navigation a { padding: 0.45rem 0.8rem; border-radius: 10rem; color: var(--wp--preset--color--indigo); text-decoration: none; }
.site-header .wp-block-navigation a:hover,
.site-header .wp-block-navigation .current-menu-item > a { background: var(--wp--preset--color--pink-soft); color: var(--ps-pink); }
.site-header__search .wp-block-search__button {
	background: var(--ps-pink); color: #fff; border: 0; border-radius: 50%; width: 2.5rem; height: 2.5rem; padding: 0.55rem; margin: 0;
}
.site-header__search .wp-block-search__button svg { fill: currentColor; width: 1.3rem; height: 1.3rem; }
.site-header__search .wp-block-search__input { border-radius: 10rem; border: 1px solid var(--ps-line); padding: 0.5rem 1rem; }
.wp-block-navigation__responsive-container-open { background: var(--wp--preset--color--pink-soft); color: var(--ps-pink); border-radius: 50%; padding: 0.55rem; }
.wp-block-navigation__responsive-container.is-menu-open { padding: 1.5rem; }
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__responsive-container-content { gap: 0.5rem; font-size: 1.25rem; }

/* ---------- Layout ---------- */
.ps-main { padding-top: clamp(1.5rem, 3vw, 2.5rem); }
.ps-layout { align-items: flex-start !important; }
.ps-layout__main,
.ps-layout__side { min-width: 0; }
@media (max-width: 781px) {
	.ps-layout { flex-direction: column; }
	.ps-layout__side { flex-basis: 100% !important; }
}

.ps-intro { margin-bottom: clamp(1.25rem, 3vw, 2rem); }
.ps-intro__title { margin: 0; font-size: var(--wp--preset--font-size--xx-large); color: var(--ps-indigo); }
.ps-intro__tagline { margin: 0.35rem 0 0; color: var(--ps-muted); font-size: var(--wp--preset--font-size--large); max-width: 60ch; }
.ps-intro__tagline p { margin: 0; }

/* ---------- Cards ---------- */
.ps-article,
.ps-card,
.ps-card-post,
.ps-related {
	background: #fff;
	border-radius: var(--ps-radius-lg);
	box-shadow: var(--ps-shadow);
}
.ps-article { padding: clamp(1.25rem, 4vw, 2.75rem); }
.ps-article > .ps-article__image { margin: calc(-1 * clamp(1.25rem, 4vw, 2.75rem)) calc(-1 * clamp(1.25rem, 4vw, 2.75rem)) 1.5rem !important; }
.ps-article__image img { width: 100%; height: auto; border-radius: var(--ps-radius-lg) var(--ps-radius-lg) 0 0; max-height: 34rem; object-fit: cover; }
.ps-article__title { margin: 0.6rem 0 0; }

.ps-pills { display: flex; flex-wrap: wrap; gap: 0.4rem; font-size: 0; }
.ps-pills a {
	display: inline-block; font-size: 0.75rem; font-weight: 600; letter-spacing: 0.04em; text-transform: uppercase;
	background: var(--wp--preset--color--pink-soft); color: var(--wp--preset--color--pink-dark); padding: 0.3rem 0.75rem; border-radius: 10rem; text-decoration: none;
}
.ps-pills a:hover { background: var(--ps-pink); color: #fff; }
.ps-pills .wp-block-post-terms__separator { display: none; }

.ps-byline { gap: 0.35rem 1rem !important; align-items: center; font-size: var(--wp--preset--font-size--small); color: var(--ps-muted); margin-top: 0.9rem; }
.ps-byline .wp-block-post-author-name { font-weight: 600; color: var(--ps-indigo); }
.ps-byline .wp-block-post-author-name a { color: inherit; text-decoration: none; }
.ps-byline .wp-block-post-date::before { content: ""; display: inline-block; width: 5px; height: 5px; border-radius: 50%; background: var(--ps-pink); margin-right: 0.8rem; vertical-align: middle; }
.ps-byline .wp-block-avatar img { display: block; }

/* Feed cards: image left, text right; stacked on phones and in grids. */
.ps-feed .wp-block-post-template { display: grid; gap: 1.5rem; margin: 0; padding: 0; list-style: none; }
.ps-card-post { display: grid; grid-template-columns: minmax(0, 40%) minmax(0, 1fr); overflow: hidden; }
.ps-card-post__image { margin: 0; height: 100%; }
.ps-card-post__image a,
.ps-card-post__image img { display: block; width: 100%; height: 100%; object-fit: cover; border-radius: 0; }
.ps-card-post__body { padding: clamp(1.1rem, 2.5vw, 1.75rem); display: flex; flex-direction: column; gap: 0.6rem; }
.ps-card-post__title { margin: 0; font-size: clamp(1.15rem, 1.8vw, 1.45rem); line-height: 1.3; }
.ps-card-post__title a { color: var(--ps-indigo); text-decoration: none; }
.ps-card-post__title a:hover { color: var(--ps-pink); }
.ps-card-post__excerpt { margin: 0; color: var(--wp--preset--color--ink-soft); font-size: var(--wp--preset--font-size--small); }
.ps-card-post__excerpt p { margin: 0; }
.ps-card-post .ps-byline { margin-top: auto; }
.ps-card-post--stack,
.wp-block-post-template.is-layout-grid .ps-card-post { grid-template-columns: 1fr; }
@media (max-width: 640px) {
	.ps-card-post { grid-template-columns: 1fr; }
	.ps-card-post__image img { aspect-ratio: 16 / 10; }
}
.wp-block-post-template.is-layout-grid { grid-template-columns: repeat(auto-fill, minmax(min(17rem, 100%), 1fr)); }

.ps-pagination { margin-top: 2rem; gap: 0.35rem; font-weight: 600; }
.ps-pagination a,
.ps-pagination .page-numbers { display: inline-grid; place-items: center; min-width: 2.5rem; height: 2.5rem; padding: 0 0.75rem; border-radius: 10rem; background: #fff; color: var(--ps-indigo); text-decoration: none; box-shadow: var(--ps-shadow); }
.ps-pagination .current { background: var(--ps-pink); color: #fff; }

/* ---------- Sidebar ---------- */
.ps-sidebar { display: flex; flex-direction: column; gap: 1.25rem; }
.ps-card { padding: 1.4rem 1.5rem; }
.ps-card > * + * { margin-top: 0.8rem; }
.ps-card__title {
	display: flex; align-items: center; gap: 0.6rem; margin: 0;
	font-size: 1rem; text-transform: uppercase; letter-spacing: 0.04em; color: var(--ps-indigo);
}
.ps-card__title::after { content: ""; flex: 1; height: 2px; background: linear-gradient(90deg, var(--ps-pink) 0 0.5rem, var(--ps-line) 0.5rem); border-radius: 2px; }
.ps-card--about img { border-radius: var(--ps-radius); width: 100%; height: auto; }
.ps-card p { color: var(--wp--preset--color--ink-soft); }
.ps-card--sticky { position: sticky; top: 1.25rem; }
.ps-cats { list-style: none; margin: 0; padding: 0; }
.ps-cats li { display: flex; justify-content: space-between; gap: 0.5rem; padding: 0.45rem 0; border-top: 1px solid var(--ps-line); font-size: var(--wp--preset--font-size--small); color: var(--ps-muted); }
.ps-cats li:first-child { border-top: 0; }
.ps-cats a { color: var(--ps-indigo); font-weight: 600; text-decoration: none; }
.ps-cats a:hover { color: var(--ps-pink); }
@media (max-width: 781px) {
	.ps-card--sticky { position: static; }
}

/* ---------- Article content ---------- */
.ps-content { margin-top: 1.5rem; color: var(--wp--preset--color--ink-soft); }
.ps-content > * { margin-block: 0 1.15em; }
.ps-content h2 { margin-top: 2.2em; scroll-margin-top: 1.5rem; }
.ps-content h3 { margin-top: 1.8em; scroll-margin-top: 1.5rem; }
.ps-content h4,
.ps-content h5 { margin-top: 1.5em; }
.ps-content :where(ul, ol) { padding-left: 1.3em; }
.ps-content li + li { margin-top: 0.35em; }
.ps-content li::marker { color: var(--ps-pink); }
.ps-content .wp-block-image img { height: auto; }
.ps-content .wp-block-image figcaption { text-align: center; }
.ps-content .aligncenter { margin-inline: auto; text-align: center; }
.ps-content .alignright { float: right; margin: 0.3em 0 1em 1.5em; max-width: 45%; }
.ps-content .alignleft { float: left; margin: 0.3em 1.5em 1em 0; max-width: 45%; }
@media (max-width: 640px) {
	.ps-content .alignright,
	.ps-content .alignleft { float: none; margin: 0 auto 1em; max-width: 100%; }
}
.ps-content .wp-block-table { overflow-x: auto; }
.ps-content table { border-collapse: collapse; width: 100%; background: #fff; }
.ps-content th { background: var(--ps-indigo); color: #fff; text-align: left; }
.ps-content th,
.ps-content td { padding: 0.65rem 0.8rem; border: 1px solid var(--ps-line); }
.ps-content .is-style-stripes tbody tr:nth-child(odd) { background: var(--wp--preset--color--ground); }
.ps-content .has-background { padding: 1.25rem 1.5rem; border-radius: var(--ps-radius); }
.ps-content .wp-block-embed iframe { max-width: 100%; }
.ps-content blockquote { margin-inline: 0; }
.ps-content::after { content: ""; display: table; clear: both; }

/* Easy-TOC replacement (collapsed by default, like the old site). */
.ps-toc { background: var(--wp--preset--color--ground); border: 1px solid var(--ps-line); border-radius: var(--ps-radius); padding: 0.9rem 1.25rem; }
.ps-toc summary { cursor: pointer; font-weight: 600; color: var(--ps-indigo); list-style-position: outside; }
.ps-toc ol { margin: 0.75rem 0 0.25rem; padding-left: 1.3em; font-size: var(--wp--preset--font-size--small); }
.ps-toc ol ol { margin: 0.25rem 0; }
.ps-toc a { color: var(--wp--preset--color--ink-soft); text-decoration: none; }
.ps-toc a:hover { color: var(--ps-pink); text-decoration: underline; }

/* Ranked winery lists: square crops on phones (old pinot-arb-mobile-images mu-plugin). */
@media (max-width: 767px) {
	.ps-ranked-list .ps-content figure.wp-block-image { width: 100%; }
	.ps-ranked-list .ps-content figure.wp-block-image img { aspect-ratio: 1 / 1; object-fit: cover; width: 100% !important; height: auto !important; display: block; }
}

/* Author box and related */
.ps-author-box { margin-top: 2.5rem; padding: 1.25rem 1.5rem; border: 1px solid var(--ps-line); border-radius: var(--ps-radius); align-items: center; }
.ps-author-box .wp-block-post-author__avatar img { border-radius: 50%; }
.ps-author-box .wp-block-post-author__name { font-weight: 700; color: var(--ps-indigo); font-size: 1.1rem; }
.ps-author-box .wp-block-post-author__byline { color: var(--ps-muted); font-size: var(--wp--preset--font-size--x-small); text-transform: uppercase; letter-spacing: 0.06em; }
.ps-related { margin-top: 1.5rem; padding: clamp(1.25rem, 3vw, 2rem); }
.ps-related h2 { margin: 0 0 1rem; font-size: var(--wp--preset--font-size--large); }
.ps-related ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(auto-fill, minmax(min(13rem, 100%), 1fr)); gap: 1rem; }
.ps-related a { display: flex; flex-direction: column; gap: 0.5rem; text-decoration: none; color: var(--ps-indigo); font-weight: 600; line-height: 1.35; font-size: var(--wp--preset--font-size--small); }
.ps-related a:hover { color: var(--ps-pink); }
.ps-related img { width: 100%; height: auto; aspect-ratio: 16 / 10; object-fit: cover; border-radius: var(--ps-radius); }

/* 404 / search */
.ps-404 > * + * { margin-top: 1rem; }
.ps-search-inline { max-width: 34rem; }
.ps-search-inline .wp-block-search__input { border-radius: 10rem; border: 1px solid var(--ps-line); padding: 0.65rem 1.1rem; }
.ps-search-inline .wp-block-search__button { border-radius: 10rem; background: var(--ps-pink); color: #fff; border: 0; padding-inline: 1.25rem; }

/* ---------- Footer ---------- */
.site-footer { color: #D8D5E8; }
.site-footer__title { text-transform: uppercase; letter-spacing: 0.08em; margin: 0 0 0.75rem; }
.site-footer p { color: #C9C6DC; }
.site-footer .wp-block-navigation a { color: #fff; text-decoration: none; }
.site-footer .wp-block-navigation a:hover { color: var(--wp--preset--color--pink-tint); text-decoration: underline; }
.site-footer__copy { border-top: 1px solid rgba(255, 255, 255, 0.12); padding-top: 1.25rem; }

/* ---------- Producers ---------- */
.ps-eyebrow { margin: 0; font-size: 0.8rem; font-weight: 700; letter-spacing: 0.1em; text-transform: uppercase; color: var(--wp--preset--color--pink-dark); }
.ps-verdict { margin-top: 1rem; border-left: 4px solid var(--ps-pink); padding-left: 1.1rem; font-size: var(--wp--preset--font-size--large); color: var(--wp--preset--color--ink); line-height: 1.55; }
.ps-verdict p { margin: 0; }
.ps-facts { margin-top: 1.5rem; border: 1px solid var(--ps-line); border-radius: var(--ps-radius-lg); padding: 1.25rem 1.5rem; background: linear-gradient(180deg, var(--wp--preset--color--pink-soft), #fff 70%); }
.ps-facts dl { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(11rem, 100%), 1fr)); gap: 0.9rem 1.5rem; margin: 0; }
.ps-facts dt { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--ps-muted); }
.ps-facts dd { margin: 0.15rem 0 0; font-weight: 600; color: var(--wp--preset--color--ink); font-size: var(--wp--preset--font-size--small); overflow-wrap: anywhere; }
.ps-facts__verified { margin: 1rem 0 0; font-size: var(--wp--preset--font-size--x-small); color: var(--ps-muted); }
.ps-visits,
.ps-wines { margin-top: 2.25rem; }
.ps-table-wrap { overflow-x: auto; }
.ps-visits table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); }
.ps-visits th { background: var(--ps-indigo); color: #fff; text-align: left; }
.ps-visits th,
.ps-visits td { padding: 0.6rem 0.75rem; border: 1px solid var(--ps-line); vertical-align: top; }
.ps-num { font-variant-numeric: tabular-nums; white-space: nowrap; }
.ps-button { display: inline-block; background: var(--ps-pink); color: #fff !important; font-weight: 600; padding: 0.75rem 1.4rem; border-radius: 10rem; text-decoration: none; }
.ps-button:hover { background: var(--ps-indigo); }
.ps-note { font-size: var(--wp--preset--font-size--x-small); color: var(--ps-muted); }
.ps-producer-list { list-style: none; margin: 0; padding: 0; display: grid; gap: 0.25rem; }
.ps-producer-list li { display: flex; justify-content: space-between; gap: 1rem; align-items: baseline; padding: 0.8rem 0; border-top: 1px solid var(--ps-line); }
.ps-producer-list a { display: flex; flex-direction: column; text-decoration: none; color: var(--ps-indigo); }
.ps-producer-list a span { color: var(--wp--preset--color--ink-soft); font-size: var(--wp--preset--font-size--small); }
.ps-producer-list small { color: var(--ps-muted); text-align: right; }

/* ---------- Partner offers, comparisons ---------- */
.ps-disclosure { font-size: var(--wp--preset--font-size--x-small); color: var(--ps-muted); background: var(--wp--preset--color--ground); border: 1px solid var(--ps-line); border-radius: var(--ps-radius); padding: 0.55rem 0.9rem; }
.ps-offers { margin-block: 2rem; display: grid; gap: 1rem; }
.ps-offers__heading { margin: 0; }
.ps-offers__intro { margin: 0; color: var(--wp--preset--color--ink-soft); }
.ps-offer { display: grid; grid-template-columns: minmax(0, 38%) minmax(0, 1fr); border: 2px solid var(--wp--preset--color--pink-tint); border-radius: var(--ps-radius-lg); overflow: hidden; background: #fff; }
.ps-offers--compact .ps-offer { grid-template-columns: 1fr; }
.ps-offer__img { width: 100%; height: 100%; object-fit: cover; display: block; border-radius: 0 !important; }
.ps-offer__body { padding: 1.1rem 1.35rem; display: flex; flex-direction: column; gap: 0.45rem; }
.ps-offer__body > * { margin: 0; }
.ps-offer__tag { font-size: 0.72rem; font-weight: 700; letter-spacing: 0.08em; text-transform: uppercase; color: var(--wp--preset--color--pink-dark); }
.ps-offer__title { font-size: 1.15rem; margin: 0; }
.ps-offer__meta { font-size: var(--wp--preset--font-size--small); color: var(--ps-muted); }
.ps-offer__meta strong { color: var(--wp--preset--color--ink); font-size: 1.05rem; }
.ps-offer ul { padding-left: 1.1rem; font-size: var(--wp--preset--font-size--small); color: var(--wp--preset--color--ink-soft); }
.ps-offer__cta { display: flex; flex-wrap: wrap; align-items: center; gap: 0.5rem 1rem; margin-top: 0.35rem !important; }
.ps-offer__checked { font-size: var(--wp--preset--font-size--x-small); color: var(--ps-muted); }
@media (max-width: 640px) { .ps-offer { grid-template-columns: 1fr; } .ps-offer__img { aspect-ratio: 16 / 9; } }
.ps-compare table { border-collapse: collapse; width: 100%; font-size: var(--wp--preset--font-size--small); background: #fff; }
.ps-compare caption { text-align: left; font-weight: 600; color: var(--ps-indigo); padding-bottom: 0.5rem; }
.ps-compare th { background: var(--ps-indigo); color: #fff; text-align: left; }
.ps-compare th,
.ps-compare td { padding: 0.55rem 0.7rem; border: 1px solid var(--ps-line); vertical-align: top; }
.ps-compare tbody tr:nth-child(odd) { background: var(--wp--preset--color--ground); }
.ps-byline-text { color: var(--ps-muted); font-size: var(--wp--preset--font-size--small); margin: 0.5rem 0 0; }
.ps-section-title { margin-top: 2.5rem; }
.ps-producer-group { margin: 1.75rem 0 0.25rem; font-size: 1.05rem; color: var(--ps-indigo); }
.ps-callout { background: var(--wp--preset--color--mint); border-radius: var(--ps-radius); padding: 1.1rem 1.35rem; }
.ps-callout > :last-child { margin-bottom: 0; }

/* Comparison tables: keep names and prices readable; scroll sideways on narrow screens. */
.ps-compare table { min-width: 44rem; table-layout: auto; }
.ps-compare td:nth-child(1),
.ps-compare td:nth-child(2),
.ps-compare td:nth-child(4) { white-space: nowrap; }
.ps-compare td:nth-child(5) { min-width: 14rem; }
.ps-visits table { min-width: 36rem; }
.ps-visits td:nth-child(2),
.ps-visits td:nth-child(3) { white-space: nowrap; }

/* ---------- Header dropdowns ---------- */
.site-header .wp-block-navigation .wp-block-navigation__submenu-container {
	background: #fff; border: 1px solid var(--ps-line); border-radius: var(--ps-radius); box-shadow: var(--ps-shadow);
	padding: 0.4rem; min-width: 15rem; font-size: var(--wp--preset--font-size--small); font-weight: 500;
}
.site-header .wp-block-navigation .wp-block-navigation__submenu-container a { padding: 0.45rem 0.75rem; border-radius: 0.5rem; width: 100%; }
.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation-submenu > a { font-weight: 700; color: var(--ps-indigo); }
.site-header .wp-block-navigation .wp-block-navigation-item__content { white-space: nowrap; }
.site-header .wp-block-navigation__submenu-icon { color: var(--ps-indigo); }
@media (min-width: 600px) {
	/* Long producer lists: cap height and scroll inside the flyout. */
	.site-header .wp-block-navigation .wp-block-navigation__submenu-container .wp-block-navigation__submenu-container { max-height: 70vh; overflow-y: auto; }
}
.wp-block-navigation__responsive-container.is-menu-open .wp-block-navigation__submenu-container { border: 0; box-shadow: none; padding: 0 0 0 1rem; min-width: 0; }
