/*
Theme Name: Pupulu
Theme URI: https://www.pupulu.cz/
Author: Netgarden
Description: Blokové téma pro Chovnou stanici Pupulu (český teriér). Klidný, plochý design s fontem Figtree.
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.0
Version: 1.0.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
Text Domain: pupulu
*/

/* ---- Base ---- */
a { text-decoration: none; }
.pp-prose a { text-decoration: underline; text-underline-offset: 2px; }
.pp-prose table { display: block; max-width: 100%; overflow-x: auto; }
.pp-prose { overflow-wrap: anywhere; }
:where(.wp-site-blocks) > * { margin-block-start: 0; }
img { border-radius: 0; }

/* ---- Typography helpers ---- */
.pp-eyebrow {
	margin: 0;
	font-size: 14px;
	font-weight: 600;
	letter-spacing: 0.08em;
	text-transform: uppercase;
	color: var(--wp--preset--color--accent);
}
.pp-eyebrow a { color: inherit; text-decoration: none; }
.pp-subtitle { margin: 0 !important; font-size: 15px; color: var(--wp--preset--color--muted); }
.pp-lead { font-size: 19px; color: var(--wp--preset--color--body-muted); }
.pp-meta { font-size: 15px; color: var(--wp--preset--color--muted); }
.pp-heading-group { gap: 4px !important; }
.pp-heading-group > * { margin: 0 !important; }
.pp-arrow-link { font-weight: 600; }

/* Inline links: enlarge the tap area to >= 44px without shifting the layout */
.pp-arrow-link a,
.pp-eyebrow a,
.pp-contact-value a,
.pp-header .wp-block-site-title a,
.wp-block-post-navigation-link a,
.wp-block-post-excerpt__more-link {
	display: inline-block;
	padding: 12px 0;
	margin: -12px 0;
}
.pp-news .wp-block-post-title a { display: inline-block; padding: 8px 0; margin: -8px 0; }

/* ---- Sections ---- */
.pp-section {
	padding-top: clamp(48px, 7vw, 80px);
	padding-bottom: clamp(48px, 7vw, 80px);
}
.pp-section-top { padding-top: clamp(40px, 5vw, 64px); }
.pp-border-top { border-top: 1px solid var(--wp--preset--color--line); }

/* ---- Header / footer ---- */
.pp-header { border-bottom: 1px solid var(--wp--preset--color--line); padding-top: 22px; padding-bottom: 22px; }
.pp-header .wp-block-site-title { margin: 0; }
.pp-header .wp-block-site-tagline { margin: 0; }
.pp-brand { gap: 0 !important; }
.pp-header .wp-block-navigation { gap: 4px 28px; }
.pp-header .wp-block-navigation-item__content { padding: 10px 0; }
.pp-header .wp-block-navigation .current-menu-item > a,
.pp-header .wp-block-navigation a:hover { color: var(--wp--preset--color--accent); }
.pp-footer { border-top: 1px solid var(--wp--preset--color--line); padding-top: 32px; padding-bottom: 32px; font-size: 15px; color: var(--wp--preset--color--muted); }
.pp-footer p { margin: 0; }
.pp-footer a { color: var(--wp--preset--color--muted); padding: 12px 0; margin: -12px 0; display: inline-block; }
.pp-footer a:hover { color: var(--wp--preset--color--accent); }

/* ---- Images ---- */
.pp-rounded img, .pp-rounded { border-radius: 20px; overflow: hidden; }
.pp-hero-image img { aspect-ratio: 4 / 3; object-fit: cover; width: 100%; border-radius: 20px; }

/* ---- Cards (whole card clickable) ---- */
.pp-cards .wp-block-post { position: relative; display: flex; flex-direction: column; gap: 14px; }
.pp-cards .wp-block-post > * { margin: 0; }
.pp-cards .wp-block-post-featured-image { border-radius: 16px; overflow: hidden; background: var(--wp--preset--color--placeholder); }
.pp-cards .wp-block-post-featured-image img { border-radius: 16px; transition: transform .25s ease; }
.pp-cards .wp-block-post:hover .wp-block-post-featured-image img { transform: scale(1.02); }
.pp-cards .wp-block-post-title { font-size: 20px; font-weight: 600; letter-spacing: 0; line-height: 1.35; }
.pp-cards .wp-block-post-title a { color: var(--wp--preset--color--contrast); }
.pp-cards .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.pp-cards .wp-block-post:hover .wp-block-post-title a { color: var(--wp--preset--color--accent); }
.pp-cards .wp-block-post-title + * { margin-top: -10px; }

/* ---- Litter rows ---- */
.pp-rows .wp-block-post-template { gap: 0 !important; border-bottom: 1px solid var(--wp--preset--color--line); }
.pp-rows .wp-block-post {
	position: relative;
	border-top: 1px solid var(--wp--preset--color--line);
	padding: 22px 0;
}
.pp-rows .wp-block-post-title { font-size: 22px; font-weight: 600; letter-spacing: 0; margin: 0; }
.pp-rows .wp-block-post-title a { color: var(--wp--preset--color--contrast); }
.pp-rows .wp-block-post-title a::after { content: ""; position: absolute; inset: 0; }
.pp-rows .wp-block-post:hover .wp-block-post-title a { color: var(--wp--preset--color--accent); }
.pp-rows .wp-block-post-date { font-size: 15px; }
.pp-rows .wp-block-post-date::after { content: " →"; }
.pp-badge {
	margin: 0 !important;
	font-size: 13px;
	font-weight: 600;
	padding: 3px 10px;
	border-radius: 999px;
	background: var(--wp--preset--color--accent-soft);
	color: #24473A;
	line-height: 1.5;
}
.pp-rows .wp-block-post:not(:first-child) .pp-badge { display: none; }

/* ---- News ---- */
.pp-news .wp-block-post { display: flex; flex-direction: column; gap: 10px; }
.pp-news .wp-block-post > * { margin: 0; }
.pp-news .wp-block-post-title a { color: var(--wp--preset--color--contrast); }
.pp-news .wp-block-post-title a:hover { color: var(--wp--preset--color--accent); }
.pp-news .wp-block-post-excerpt__excerpt { margin: 0; color: var(--wp--preset--color--body-muted); }
.pp-news .wp-block-post-excerpt__more-text { margin: 10px 0 0; }
.pp-news .wp-block-post-excerpt__more-link { font-weight: 600; }

/* ---- Contact band ---- */
.pp-contact-band a { color: #FFFFFF; }
.pp-contact-band a:hover { color: var(--wp--preset--color--accent-soft); }
.pp-contact-band h2 { color: #FFFFFF; }
.pp-contact-lines { gap: 8px !important; font-size: 20px; font-weight: 600; }
.pp-contact-lines > * { margin: 0 !important; }

/* ---- Pills ---- */
.pp-pills .wp-block-button__link { min-height: 44px; padding: 0 20px; display: inline-flex; align-items: center; font-size: 16px; }

/* ---- Buttons: min height ---- */
.wp-block-button__link { min-height: 48px; display: inline-flex; align-items: center; justify-content: center; }

/* ---- Tables (scrollable on phones) ---- */
.wp-block-table { overflow-x: auto; border: 1px solid var(--wp--preset--color--line); border-radius: 16px; background: #FFFFFF; }
.wp-block-table table { border-collapse: collapse; width: 100%; min-width: 560px; font-variant-numeric: tabular-nums; }
.wp-block-table td, .wp-block-table th { border: 0; border-top: 1px solid var(--wp--preset--color--line); padding: 14px 20px; text-align: left; }
.wp-block-table thead { border: 0; }
.wp-block-table thead th { border-top: 0; color: var(--wp--preset--color--muted); font-size: 14px; font-weight: 600; background: var(--wp--preset--color--surface); }
.wp-block-table.pp-weights td:not(:first-child), .wp-block-table.pp-weights th:not(:first-child) { text-align: right; }
.wp-block-table.pp-weights td:first-child { font-weight: 600; }
.wp-block-table.pp-weights table { min-width: 620px; }

/* ---- Fact list (dog profile) ---- */
.pp-facts { border-top: 1px solid var(--wp--preset--color--line); gap: 0 !important; }
.pp-facts > .wp-block-group { border-bottom: 1px solid var(--wp--preset--color--line); padding: 16px 16px 16px 0; gap: 0 !important; }
.pp-facts > .wp-block-group > * { margin: 0 !important; }
.pp-facts .pp-fact-label { font-size: 14px; color: var(--wp--preset--color--muted); }
.pp-facts .pp-fact-value { font-weight: 600; }

/* ---- Avatars ---- */
.pp-avatar img { width: 72px; height: 72px; border-radius: 999px; object-fit: cover; }
.pp-parent-card { border: 1px solid var(--wp--preset--color--line); border-radius: 14px; padding: 14px; }
.pp-parent-card img { width: 56px; height: 56px; border-radius: 999px; object-fit: cover; }

/* ---- Link lists (Odkazy) ---- */
.pp-linklist { gap: 4px !important; }
.pp-linklist h2 { font-size: 22px; letter-spacing: 0; margin: 0 0 8px; }
.pp-linklist ul { list-style: none; margin: 0; padding: 0; border-bottom: 1px solid var(--wp--preset--color--line); }
.pp-linklist li { border-top: 1px solid var(--wp--preset--color--line); margin: 0; }
.pp-linklist li a { display: flex; flex-direction: column; padding: 14px 0; color: var(--wp--preset--color--contrast); text-decoration: none; font-weight: 600; }
.pp-linklist li a:hover { color: var(--wp--preset--color--accent); }
.pp-linklist li a span { font-weight: 400; font-size: 15px; color: var(--wp--preset--color--muted); }

/* ---- Contact page ---- */
.pp-contact-list { border-top: 1px solid var(--wp--preset--color--line); gap: 0 !important; }
.pp-contact-list > .wp-block-group { padding: 18px 0; border-bottom: 1px solid var(--wp--preset--color--line); gap: 0 !important; }
.pp-contact-list > .wp-block-group > * { margin: 0 !important; }
.pp-contact-value { font-size: 22px; font-weight: 600; }
.pp-form-box { background: var(--wp--preset--color--surface); border-radius: 20px; padding: clamp(24px, 4vw, 36px); }
.pp-form-box h2 { font-size: 26px; }
.pp-form-box .wpcf7-form p { margin: 0 0 18px; }
.pp-form-box label { display: flex; flex-direction: column; gap: 6px; font-size: 15px; font-weight: 600; }
.pp-form-box input[type="text"],
.pp-form-box input[type="email"],
.pp-form-box textarea {
	width: 100%;
	box-sizing: border-box;
	min-height: 48px;
	padding: 0 14px;
	border: 1.5px solid var(--wp--preset--color--line-strong);
	border-radius: 10px;
	background: #FFFFFF;
	font: inherit;
	font-weight: 400;
	color: var(--wp--preset--color--contrast);
}
.pp-form-box textarea { padding: 12px 14px; resize: vertical; }
.pp-form-box input:focus, .pp-form-box textarea:focus { outline: 2px solid var(--wp--preset--color--accent); outline-offset: 1px; }
.pp-form-box input[type="submit"] {
	min-height: 48px; padding: 0 28px; border: 0; border-radius: 999px;
	background: var(--wp--preset--color--accent); color: #FFFFFF; font: inherit; font-weight: 600; cursor: pointer;
}
.pp-form-box input[type="submit"]:hover { background: var(--wp--preset--color--accent-dark); }
.pp-form-box .wpcf7-spinner { vertical-align: middle; }
.pp-map iframe { width: 100%; height: 320px; border: 0; border-radius: 20px; display: block; }

/* ---- Single post / legacy content ---- */
.pp-entry .wp-block-post-content { font-size: 17px; }
.pp-entry .wp-block-post-content img { max-width: 100%; height: auto; border-radius: 12px; }
.pp-entry .wp-block-post-content img[src^="plugins/"] { display: none; }
.pp-entry .wp-block-post-content h1 { font-size: var(--wp--preset--font-size--x-large); }
.pp-entry .wp-block-post-content p[style*="margin-left"] { margin-left: 0 !important; margin-right: 0 !important; }
.pp-entry .wp-block-post-content pre:empty,
.pp-entry .wp-block-post-content pre:has(> br:only-child) { display: none; }
.pp-entry .wp-block-post-content iframe { max-width: 100%; }
.pp-back { font-size: 15px; }
.pp-back a { color: var(--wp--preset--color--muted); padding: 8px 0; display: inline-block; }
.pp-back a:hover { color: var(--wp--preset--color--accent); }

/* ---- Pagination ---- */
.wp-block-query-pagination { gap: 12px; font-weight: 600; }
.wp-block-query-pagination-numbers .page-numbers { display: inline-flex; min-width: 44px; min-height: 44px; align-items: center; justify-content: center; border-radius: 999px; }
.wp-block-query-pagination-numbers .page-numbers.current { background: var(--wp--preset--color--accent); color: #FFFFFF; }

@media (max-width: 600px) {
	.pp-header .wp-block-navigation { gap: 0 20px; }
	.pp-facts { grid-template-columns: 1fr !important; }
}
