/*
Theme Name: PrintablesHub GeneratePress Child
Theme URI: https://printableshub.us/
Description: Child theme for PrintablesHub, built on GeneratePress.
Author: PrintablesHub
Template: generatepress
Version: 1.0.2
Text Domain: printableshub-gp
*/

:root {
	--ph-ink: #102b50;
	--ph-ink-soft: #344c6b;
	--ph-teal: #079e9b;
	--ph-teal-dark: #087f80;
	--ph-coral: #f77983;
	--ph-cream: #fffdf8;
	--ph-surface: #fff;
	--ph-line: #e3e9ed;
	--ph-muted: #66768b;
	--ph-shadow: 0 12px 34px rgba(16, 43, 80, .08);
}

body { background: var(--ph-cream); color: var(--ph-ink); font-family: Inter, "Avenir Next", Avenir, "Segoe UI", sans-serif; }
a { color: var(--ph-teal-dark); transition: color .18s ease, background-color .18s ease, border-color .18s ease, transform .18s ease; }
a:hover, a:focus { color: var(--ph-ink); }
#masthead.site-header {
	position: sticky;
	top: 0;
	z-index: 1000;
	border-bottom: 1px solid rgba(16, 43, 80, .08);
	background: var(--ph-cream);
	transition: box-shadow .2s ease;
}
#masthead .inside-header {
	max-width: 1320px;
	margin-inline: auto;
}
#masthead.ph-header-scrolled {
	box-shadow: 0 6px 22px rgba(16, 43, 80, .1);
}
#masthead.ph-header-scrolled .inside-header {
	padding-top: 12px;
	padding-bottom: 12px;
}
#masthead.ph-header-scrolled .site-branding .main-title {
	font-size: 1.35rem;
}
#masthead.ph-header-scrolled .site-logo img,
#masthead.ph-header-scrolled .custom-logo,
#masthead.ph-header-scrolled .header-image {
	max-height: 46px;
	width: auto;
	object-fit: contain;
}
#masthead.ph-header-scrolled .main-navigation .main-nav ul li a {
	padding-top: 0;
	padding-bottom: 0;
	line-height: 44px;
}
body.admin-bar #masthead.site-header { top: 32px; }
@media (max-width: 782px) {
	body.admin-bar #masthead.site-header { top: 46px; }
	#masthead.ph-header-scrolled .inside-header { padding-top: 8px; padding-bottom: 8px; }
}
.site-branding .main-title a { color: var(--ph-ink); font-weight: 800; letter-spacing: -.045em; }
.site-description { color: var(--ph-muted); }
.main-navigation, .main-navigation .main-nav ul li a, .main-navigation .menu-toggle { background: var(--ph-cream); color: var(--ph-ink); }
.main-navigation .main-nav ul li a { font-weight: 650; }
.main-navigation .main-nav ul li a:hover, .main-navigation .main-nav ul li a:focus, .main-navigation .main-nav ul li[class*="current-menu-"] > a { background: transparent; color: var(--ph-teal-dark); }

/* Capitalize existing post titles in every GeneratePress content template. */
.entry-title,
.page-title,
.ph-printable-info h3,
.wp-block-post-title {
	text-transform: capitalize;
}

.ph-home { --ph-content-width: 1320px; color: var(--ph-ink); }
.ph-wrap { width: min(var(--ph-content-width), calc(100% - 48px)); margin-inline: auto; }
.ph-hero { display: grid; grid-template-columns: minmax(0, 1fr) minmax(360px, .95fr); align-items: center; gap: clamp(32px, 5vw, 76px); min-height: 500px; padding-block: 54px 66px; }
.ph-hero-copy { position: relative; z-index: 1; }
.ph-eyebrow { display: inline-flex; align-items: center; gap: 9px; margin: 0 0 18px; color: var(--ph-teal-dark); font-size: .83rem; font-weight: 800; letter-spacing: .09em; text-transform: uppercase; }
.ph-eyebrow::before { width: 9px; height: 9px; border-radius: 50%; background: var(--ph-coral); content: ""; }
.ph-hero h1 { max-width: 650px; margin: 0 0 18px; color: var(--ph-ink); font-size: clamp(2.8rem, 5vw, 4.8rem); font-weight: 850; letter-spacing: -.065em; line-height: .99; }
.ph-hero-lede { max-width: 610px; margin: 0 0 25px; color: var(--ph-ink-soft); font-size: clamp(1.08rem, 1.6vw, 1.28rem); line-height: 1.55; }
.ph-search { display: flex; max-width: 670px; padding: 6px; border: 1px solid var(--ph-line); border-radius: 16px; background: var(--ph-surface); box-shadow: 0 8px 24px rgba(16, 43, 80, .06); }
.ph-search input[type="search"] { flex: 1 1 0%; width: 0; min-width: 0; min-height: 54px; padding: 0 16px; border: 0; background: transparent; box-shadow: none; color: var(--ph-ink); font-size: 1rem; }
.ph-search input[type="search"]:focus { outline: 2px solid var(--ph-teal); outline-offset: -2px; }
.ph-search button { flex: 0 0 auto; align-self: stretch; min-height: 52px; margin-left: auto; padding: 0 25px; border: 0; border-radius: 11px; background: var(--ph-teal); color: #fff; cursor: pointer; font-weight: 750; }
.ph-search button:hover, .ph-search button:focus { background: var(--ph-teal-dark); }
.ph-benefits { display: flex; flex-wrap: wrap; gap: 12px 24px; margin: 22px 0 0; padding: 0; color: var(--ph-ink-soft); font-size: .91rem; font-weight: 600; list-style: none; }
.ph-benefits li { display: inline-flex; align-items: center; gap: 9px; }
.ph-benefits li::before { width: 10px; height: 10px; border-radius: 3px 3px 7px 3px; background: var(--ph-coral); content: ""; transform: rotate(-12deg); }
.ph-benefits li:nth-child(2)::before { background: var(--ph-teal); }
.ph-benefits li:nth-child(3)::before { background: #f3bd55; }

.ph-hero-art { position: relative; display: grid; min-height: 380px; place-items: center; }
.ph-hero-art::before, .ph-hero-art::after { position: absolute; border-radius: 50%; content: ""; }
.ph-hero-art::before { width: 76%; height: 76%; background: #e6f5f2; }
.ph-hero-art::after { top: 8%; right: 10%; width: 18px; height: 18px; background: var(--ph-coral); box-shadow: -390px 265px 0 -4px #f3bd55, -18px 240px 0 -5px var(--ph-teal); }
.ph-hero-art-image { position: absolute; z-index: 1; inset: 6% 4%; width: 92%; height: 88%; border-radius: 26px; object-fit: cover; box-shadow: var(--ph-shadow); }
.ph-paper-stack { position: relative; z-index: 1; width: min(84%, 470px); height: 330px; }
.ph-paper { position: absolute; display: flex; width: 57%; height: 76%; flex-direction: column; align-items: center; justify-content: center; gap: 12px; border: 1px solid #e7e8e5; border-radius: 12px; background: #fff; box-shadow: 0 15px 35px rgba(16, 43, 80, .12); text-align: center; }
.ph-paper strong { color: var(--ph-ink); font-size: clamp(1.6rem, 3vw, 2.7rem); line-height: 1; }
.ph-paper span { color: var(--ph-teal-dark); font-size: .88rem; font-weight: 700; }
.ph-paper-lines { display: grid; width: 70%; gap: 12px; }
.ph-paper-lines i { height: 2px; border-radius: 3px; background: #dce6eb; }
.ph-paper-one { top: 13%; left: 3%; transform: rotate(-10deg); }
.ph-paper-two { z-index: 2; top: 4%; left: 25%; border-top: 8px solid #f7d9dd; transform: rotate(3deg); }
.ph-paper-three { right: 0; bottom: 1%; width: 44%; height: 62%; border-top: 8px solid #f8e8bd; transform: rotate(9deg); }
.ph-pencil { position: absolute; z-index: 3; right: 4%; bottom: 7%; width: 12px; height: 190px; border-radius: 8px; background: linear-gradient(to bottom, #f77983 0 78%, #f5c48b 78% 92%, #102b50 92%); box-shadow: 18px -16px 0 -2px #079e9b; transform: rotate(35deg); }

.ph-section { padding-block: 30px 52px; }
.ph-section + .ph-section { padding-top: 16px; }
.ph-section-heading { display: flex; align-items: end; justify-content: space-between; gap: 20px; margin-bottom: 22px; }
.ph-section-heading h2 { margin: 0; color: var(--ph-ink); font-size: clamp(1.75rem, 3vw, 2.35rem); font-weight: 800; letter-spacing: -.045em; }
.ph-section-heading p { margin: 5px 0 0; color: var(--ph-muted); }
.ph-text-link { flex: 0 0 auto; font-weight: 750; text-decoration: none; }
.ph-category-grid { display: grid; grid-template-columns: repeat(4, minmax(0, 1fr)); gap: 18px; }
.ph-category-card { position: relative; display: flex; min-height: 238px; align-items: end; overflow: hidden; border-radius: 18px; background: #e7f4f1; box-shadow: 0 5px 18px rgba(16, 43, 80, .05); text-decoration: none; }
.ph-category-card:nth-child(4n + 2) { background: #fae3e4; }
.ph-category-card:nth-child(4n + 3) { background: #fbf0d8; }
.ph-category-card:nth-child(4n + 4) { background: #e1eff7; }
.ph-category-card img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; transition: transform .25s ease; }
.ph-category-card:hover img, .ph-category-card:focus img { transform: scale(1.045); }
.ph-category-art { position: absolute; inset: 12% 10% 20%; display: grid; place-items: center; color: rgba(16, 43, 80, .78); font-size: clamp(2rem, 5vw, 4.3rem); font-weight: 850; letter-spacing: -.08em; }
.ph-category-art::before, .ph-category-art::after { position: absolute; width: 45%; height: 72%; border: 2px solid rgba(16, 43, 80, .14); border-radius: 8px; background: rgba(255, 255, 255, .62); content: ""; }
.ph-category-art::before { transform: rotate(-9deg) translate(-12px, 4px); }
.ph-category-art::after { transform: rotate(6deg) translate(12px, 0); }
.ph-category-art span { position: relative; z-index: 1; }
.ph-category-label { position: relative; z-index: 2; display: flex; width: calc(100% - 20px); min-height: 52px; align-items: center; justify-content: space-between; gap: 12px; margin: 10px; padding: 10px 14px; border-radius: 11px; background: rgba(255, 255, 255, .96); color: var(--ph-ink); font-weight: 750; }
.ph-category-arrow { color: var(--ph-teal-dark); font-size: 1.2rem; }

.ph-printable-grid { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); gap: 18px; }
.ph-printable-card { display: grid; grid-template-columns: minmax(100px, 38%) minmax(0, 1fr); min-height: 190px; overflow: hidden; border: 1px solid var(--ph-line); border-radius: 15px; background: var(--ph-surface); box-shadow: 0 5px 18px rgba(16, 43, 80, .04); color: inherit; text-decoration: none; }
.ph-printable-card:hover, .ph-printable-card:focus { border-color: #b5dfdd; box-shadow: var(--ph-shadow); transform: translateY(-2px); }
.ph-printable-thumb { position: relative; min-height: 100%; background: #eff7f5; }
.ph-printable-card:nth-child(3n + 2) .ph-printable-thumb { background: #fff3df; }
.ph-printable-card:nth-child(3n + 3) .ph-printable-thumb { background: #fbe9ea; }
.ph-printable-thumb img { position: absolute; inset: 0; width: 100%; height: 100%; object-fit: cover; }
.ph-printable-placeholder { position: absolute; inset: 16px; display: grid; place-items: center; border: 1px solid rgba(16, 43, 80, .12); border-radius: 8px; background: rgba(255, 255, 255, .8); color: var(--ph-teal-dark); font-size: 1.6rem; font-weight: 800; }
.ph-printable-info { align-self: center; min-width: 0; padding: 18px; }
.ph-printable-info h3 { margin: 0 0 8px; color: var(--ph-ink); font-size: 1.08rem; font-weight: 800; line-height: 1.3; }
.ph-printable-info p { display: -webkit-box; margin: 0 0 13px; overflow: hidden; color: var(--ph-muted); font-size: .91rem; line-height: 1.5; -webkit-box-orient: vertical; -webkit-line-clamp: 2; }
.ph-card-meta { display: inline-flex; align-items: center; padding: 5px 9px; border-radius: 999px; background: #e8f5f4; color: var(--ph-teal-dark); font-size: .76rem; font-weight: 750; }
.ph-empty { grid-column: 1 / -1; padding: 28px; border: 1px dashed #bfd2d8; border-radius: 14px; color: var(--ph-muted); text-align: center; }
.ph-cta { margin-block: 12px 64px; padding: clamp(26px, 5vw, 48px); border-radius: 22px; background: var(--ph-ink); color: #fff; }
.ph-cta h2 { margin: 0 0 8px; color: #fff; font-size: clamp(1.6rem, 3vw, 2.2rem); }
.ph-cta p { max-width: 650px; margin: 0; color: #dbe7f1; }
.ph-cta a { display: inline-block; margin-top: 18px; padding: 12px 18px; border-radius: 10px; background: #fff; color: var(--ph-ink); font-weight: 800; text-decoration: none; }
.site-footer { background: #f3f8f7; color: var(--ph-ink-soft); }

@media (max-width: 900px) {
	.ph-hero { grid-template-columns: minmax(0, 1fr) minmax(280px, .8fr); gap: 24px; min-height: 430px; }
	.ph-hero-art { min-height: 320px; }
	.ph-category-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
	.ph-printable-grid { grid-template-columns: repeat(2, minmax(0, 1fr)); }
}
@media (max-width: 640px) {
	.ph-wrap { width: min(100% - 32px, var(--ph-content-width)); }
	.ph-hero { grid-template-columns: 1fr; gap: 12px; padding-block: 38px 25px; }
	.ph-hero h1 { max-width: 520px; font-size: clamp(2.55rem, 12vw, 3.5rem); }
	.ph-hero-art { min-height: 280px; }
	.ph-paper-stack { height: 260px; }
	.ph-search { gap: 2px; }
	.ph-search input[type="search"] { padding-inline: 10px; font-size: .92rem; }
	.ph-search button { min-height: 48px; padding-inline: 15px; }
	.ph-benefits { gap: 10px 15px; font-size: .82rem; }
	.ph-section { padding-block: 24px 36px; }
	.ph-section-heading { align-items: start; }
	.ph-section-heading h2 { font-size: 1.7rem; }
	.ph-section-heading p { font-size: .9rem; }
	.ph-text-link { max-width: 115px; font-size: .86rem; text-align: right; }
	.ph-category-grid { gap: 12px; }
	.ph-category-card { min-height: 174px; border-radius: 14px; }
	.ph-category-label { width: calc(100% - 14px); min-height: 44px; margin: 7px; padding: 8px 10px; font-size: .86rem; }
	.ph-category-art { font-size: 2.5rem; }
	.ph-printable-grid { grid-template-columns: 1fr; gap: 12px; }
	.ph-printable-card { min-height: 150px; grid-template-columns: 34% minmax(0, 1fr); }
	.ph-printable-info { padding: 14px; }
	.ph-printable-info h3 { font-size: 1rem; }
	.ph-printable-info p { font-size: .86rem; }
	.ph-cta { margin-bottom: 38px; border-radius: 16px; }
}
@media (prefers-reduced-motion: reduce) {
	*, *::before, *::after { scroll-behavior: auto !important; transition-duration: .01ms !important; }
}


/* Focused, readable layouts for individual articles and pages. */
body.single-post .site-content,
body.page .site-content {
	box-sizing: border-box;
	max-width: 1040px;
	margin: clamp(14px, 2vw, 28px) auto 76px;
	padding-inline: 24px;
}
body.single-post .content-area,
body.page .content-area {
	float: none;
	width: 100%;
}
body.single-post .inside-article,
body.page .inside-article {
	padding: clamp(26px, 5vw, 64px);
	border: 1px solid var(--ph-line);
	border-radius: 16px;
	background: var(--ph-surface);
	box-shadow: var(--ph-shadow);
}
body.single-post .entry-header,
body.page .entry-header {
	max-width: 760px;
	margin: 0 auto 34px;
}
body.single-post .entry-title,
body.page .entry-title {
	margin: 0 0 17px;
	color: var(--ph-ink);
	font-size: clamp(2.1rem, 4.3vw, 3.35rem);
	font-weight: 850;
	letter-spacing: -.055em;
	line-height: 1.08;
	text-wrap: balance;
}
body.single-post .entry-meta {
	display: flex;
	flex-wrap: wrap;
	gap: 7px 18px;
	padding-bottom: 20px;
	border-bottom: 1px solid var(--ph-line);
	color: var(--ph-muted);
	font-size: .9rem;
}
body.single-post .entry-meta a,
body.single-post .entry-meta .author-name {
	color: var(--ph-teal-dark);
	font-weight: 650;
	text-decoration: none;
}
body.single-post .featured-image.page-header-image-single {
	margin: 0 auto 34px;
}
body.single-post .featured-image.page-header-image-single img {
	width: 100%;
	max-height: 520px;
	border-radius: 11px;
	object-fit: cover;
}
body.single-post .entry-content,
body.page .entry-content {
	max-width: 760px;
	margin-inline: auto;
	color: #334b68;
	font-size: 1.075rem;
	line-height: 1.82;
}
body.single-post .entry-content > :first-child,
body.page .entry-content > :first-child { margin-top: 0; }
body.single-post .entry-content p,
body.page .entry-content p { margin: 0 0 1.35em; }
body.single-post .entry-content h2,
body.page .entry-content h2 {
	margin: 2.1em 0 .7em;
	color: var(--ph-ink);
	font-size: clamp(1.55rem, 3vw, 2.05rem);
	font-weight: 800;
	letter-spacing: -.035em;
	line-height: 1.2;
	text-wrap: balance;
}
body.single-post .entry-content h3,
body.page .entry-content h3 {
	margin: 1.8em 0 .6em;
	color: var(--ph-ink);
	font-size: clamp(1.23rem, 2.5vw, 1.55rem);
	font-weight: 780;
	letter-spacing: -.02em;
	line-height: 1.3;
}
body.single-post .entry-content h4,
body.page .entry-content h4 { margin: 1.6em 0 .55em; color: var(--ph-ink); font-size: 1.12rem; }
body.single-post .entry-content img,
body.page .entry-content img {
	max-width: 100%;
	height: auto;
	border-radius: 14px;
}
body.single-post .entry-content figure,
body.page .entry-content figure { margin: 1.8em 0; }
body.single-post .entry-content figcaption,
body.page .entry-content figcaption { margin-top: 10px; color: var(--ph-muted); font-size: .88rem; line-height: 1.5; text-align: center; }
body.single-post .entry-content ul,
body.single-post .entry-content ol,
body.page .entry-content ul,
body.page .entry-content ol { margin: 0 0 1.5em; padding-left: 1.45em; }
body.single-post .entry-content li,
body.page .entry-content li { margin: .35em 0; padding-left: .2em; }
body.single-post .entry-content blockquote,
body.page .entry-content blockquote {
	margin: 1.8em 0;
	padding: 20px 24px;
	border-left: 4px solid var(--ph-teal);
	border-radius: 0 12px 12px 0;
	background: #eff8f7;
	color: var(--ph-ink-soft);
	font-size: 1.08em;
}
body.single-post .entry-content table,
body.page .entry-content table { width: 100%; margin: 1.6em 0; border-collapse: collapse; font-size: .95em; }
body.single-post .entry-content th,
body.single-post .entry-content td,
body.page .entry-content th,
body.page .entry-content td { padding: 11px 13px; border: 1px solid var(--ph-line); text-align: left; }
body.single-post .entry-content th,
body.page .entry-content th { background: #eff8f7; color: var(--ph-ink); font-weight: 750; }
body.single-post .entry-content hr,
body.page .entry-content hr { margin: 2.2em 0; border: 0; border-top: 1px solid var(--ph-line); }
body.single-post .entry-content a:not([class]),
body.page .entry-content a:not([class]) { color: var(--ph-teal-dark); font-weight: 650; text-decoration-thickness: 1px; text-underline-offset: 3px; }
body.single-post .entry-content a:not([class]):hover,
body.page .entry-content a:not([class]):hover { color: var(--ph-ink); }
body.single-post .entry-content .wp-block-buttons,
body.page .entry-content .wp-block-buttons { margin: 1.6em 0; }
body.single-post .entry-content .wp-block-button__link,
body.page .entry-content .wp-block-button__link { border-radius: 10px; background: var(--ph-teal); color: #fff; font-weight: 750; text-decoration: none; }
body.single-post .entry-content .wp-block-separator,
body.page .entry-content .wp-block-separator { border-color: var(--ph-line); }
body.single-post .post-navigation,
body.page .post-navigation { max-width: 760px; margin: 34px auto 0; padding-top: 22px; border-top: 1px solid var(--ph-line); }
body.single-post .post-navigation a { color: var(--ph-teal-dark); font-weight: 700; text-decoration: none; }

@media (max-width: 640px) {
	body.single-post .site-content,
	body.page .site-content { margin: 10px auto 42px; padding-inline: 14px; }
	body.single-post .inside-article,
	body.page .inside-article { padding: 25px 20px; border-radius: 12px; }
	body.single-post .entry-header,
	body.page .entry-header { margin-bottom: 25px; }
	body.single-post .entry-title,
	body.page .entry-title { font-size: clamp(1.9rem, 9vw, 2.55rem); }
	body.single-post .entry-content,
	body.page .entry-content { font-size: 1rem; line-height: 1.75; }
	body.single-post .entry-content figure,
	body.page .entry-content figure { margin: 1.4em 0; }
	body.single-post .entry-content th,
	body.single-post .entry-content td,
	body.page .entry-content th,
	body.page .entry-content td { padding: 8px; }
}
