/*
 * Pine Hill German Shepherds — front-end helper styles.
 *
 * Loaded on every page by the plugin. These rules back the handful of CSS
 * classes attached to Elementor elements for effects that core controls
 * can't express: the hero gradient scrim, the diagonal CTA weave, nav/link
 * hovers, health-clearance chips and form field styling. Everything else is
 * driven by native Elementor settings on the elements themselves.
 */

/* ---- Hero: bottom-up dark scrim over the photo -------------------- */
.ph-hero-overlay { position: relative; }
.ph-hero-overlay > .elementor-background-overlay { display: none; }
.ph-hero-overlay::before {
	content: "";
	position: absolute;
	inset: 0;
	background: linear-gradient(
		to top,
		rgba(26, 21, 16, 0.72) 0%,
		rgba(26, 21, 16, 0.28) 40%,
		rgba(26, 21, 16, 0) 68%
	);
	pointer-events: none;
	z-index: 1;
}
.ph-hero-overlay > .elementor-container { position: relative; z-index: 2; }

/* ---- CTA: diagonal woven stripe band ------------------------------ */
.ph-cta-weave {
	position: relative;
	background: repeating-linear-gradient(
		50deg,
		#b3a184,
		#b3a184 16px,
		#bcab8f 16px,
		#bcab8f 32px
	) !important;
}
.ph-cta-weave::before {
	content: "";
	position: absolute;
	inset: 0;
	background: rgba(120, 105, 80, 0.32);
	z-index: 1;
}
.ph-cta-weave > .elementor-container { position: relative; z-index: 2; }

/* ---- Nav + link hovers -------------------------------------------- */
.ph-header .ph-navlink a,
.ph-header .ph-navlink .elementor-heading-title { transition: color 0.2s ease; }
.ph-header .ph-navlink:hover a,
.ph-header .ph-navlink:hover .elementor-heading-title { color: #3f3829 !important; }

/* Wordmark / logo lockup should not show link underlines */
.ph-header a { text-decoration: none; }

/* ---- Buttons: subtle hover lift ----------------------------------- */
.ph-btn .elementor-button { transition: transform 0.2s ease, filter 0.2s ease; }
.ph-btn .elementor-button:hover { filter: brightness(0.96); }

/* ---- Status dot (litters / teaser) -------------------------------- */
.ph-dot {
	display: inline-block;
	width: 8px;
	height: 8px;
	border-radius: 50%;
	background: #a4ad94;
	box-shadow: 0 0 0 4px rgba(111, 98, 90, 0.28);
	margin-right: 9px;
	vertical-align: middle;
}

/* ---- Health-clearance chips --------------------------------------- */
.ph-chips { display: flex; gap: 10px; flex-wrap: wrap; margin-top: 14px; }
.ph-chips span {
	background: #eadfd2;
	color: #a4ad94;
	padding: 5px 10px;
	font: 400 10px "Jost", sans-serif;
	letter-spacing: 0.08em;
	text-transform: uppercase;
}

/* ---- Stat rows (litters / teaser) --------------------------------- */
.ph-stats { display: flex; flex-wrap: wrap; gap: 34px; border-top: 1px solid #ece5d8; padding-top: 20px; }
.ph-stats .ph-stat .n { font: 500 26px "Cormorant Garamond", serif; color: #3f3829; line-height: 1; }
.ph-stats .ph-stat .n.sage { color: #a4ad94; }
.ph-stats .ph-stat .l { font: 400 10px "Jost", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: #a29a89; margin-top: 6px; }

/* ---- Checklist bullets (puppies) ---------------------------------- */
.ph-checklist { display: grid; gap: 14px; font: 400 14.5px/1.5 "Jost", sans-serif; color: #5a5245; }
.ph-checklist div { display: flex; gap: 12px; }
.ph-checklist .b { color: #a4ad94; }

/* ---- Forms (reserve / contact) ------------------------------------ */
.ph-form label { display: block; font: 400 11px "Jost", sans-serif; letter-spacing: 0.1em; text-transform: uppercase; color: #8a8171; margin-bottom: 8px; }
.ph-form .row { display: grid; grid-template-columns: 1fr 1fr; gap: 20px; }
.ph-form .field { margin-bottom: 20px; }
.ph-form input,
.ph-form select,
.ph-form textarea {
	display: block;
	width: 100%;
	padding: 12px 14px;
	border: 1px solid #e2d9c9;
	background: #faf8f3;
	font: 400 14px "Jost", sans-serif;
	color: #443c30;
	border-radius: 0;
}
.ph-form textarea { resize: vertical; }
.ph-form button {
	margin-top: 6px;
	border: none;
	background: #a4ad94;
	color: #fff;
	padding: 15px 26px;
	font: 400 11px "Jost", sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	cursor: pointer;
}

/* ---- Newsletter inline field -------------------------------------- */
.ph-news-form { display: flex; gap: 12px; justify-content: center; max-width: 440px; margin: 0 auto; }
.ph-news-form input { flex: 1; padding: 13px 16px; border: 1px solid #d9cebb; background: #fff; font: 400 14px "Jost", sans-serif; color: #443c30; border-radius: 0; }
.ph-news-form button { border: none; background: #a4ad94; color: #fff; padding: 13px 26px; font: 400 11px "Jost", sans-serif; letter-spacing: 0.16em; text-transform: uppercase; cursor: pointer; }

/* ---- How-it-works numbered steps (reserve) ------------------------ */
.ph-steps { display: grid; gap: 22px; }
.ph-steps .step { display: flex; gap: 16px; }
.ph-steps .num { font: 500 30px "Cormorant Garamond", serif; color: #c1b3a1; line-height: 1; }
.ph-steps .t { font: 500 15px "Jost", sans-serif; color: #3f3829; margin-bottom: 4px; }
.ph-steps p { font: 400 13.5px/1.65 "Jost", sans-serif; color: #6a6152; margin: 0; }

/* ---- Contact detail list ------------------------------------------ */
.ph-contact { display: grid; gap: 22px; font: 400 15px/1.6 "Jost", sans-serif; color: #5a5245; }
.ph-contact .k { font: 400 11px "Jost", sans-serif; letter-spacing: 0.12em; text-transform: uppercase; color: #a29a89; margin-bottom: 4px; }

/* ---- Gallery masonry ---------------------------------------------- */
.ph-gallery { display: grid; grid-template-columns: repeat(4, 1fr); grid-auto-rows: 220px; gap: 16px; }
.ph-gallery .tile { background-size: cover; background-position: center; }
.ph-gallery .r2 { grid-row: span 2; }
.ph-gallery .c2 { grid-column: span 2; }

/* ---- Health icons -------------------------------------------------- */
.ph-health-icon { color: #a4ad94; margin-bottom: 14px; line-height: 0; }

/* ---- Responsive ---------------------------------------------------- */
@media (max-width: 1024px) {
	.ph-gallery { grid-template-columns: repeat(2, 1fr); }
}
@media (max-width: 767px) {
	.ph-form .row { grid-template-columns: 1fr; }
	.ph-gallery { grid-template-columns: 1fr; grid-auto-rows: 240px; }
	.ph-gallery .c2, .ph-gallery .r2 { grid-column: auto; grid-row: auto; }
	.ph-news-form { flex-direction: column; }
	.ph-stats { gap: 22px; }
}

/* ---- Header + navigation ------------------------------------------ */
.ph-header {
	position: -webkit-sticky;
	position: sticky;
	top: 0;
	z-index: 50;
	border-bottom: 1px solid rgba(169, 154, 128, 0.22);
}
.ph-nav {
	display: flex;
	gap: 24px;
	align-items: center;
	font: 400 12px "Jost", sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	color: #6a6152;
	margin: 0;
}
.ph-nav-right { justify-content: flex-end; }
.ph-nav .ph-navlink a { color: #6a6152; text-decoration: none; transition: color 0.2s ease; }
.ph-nav .ph-navlink:hover a { color: #3f3829; }
.ph-nav .ph-navlink.apply a { color: #a4ad94; }
.ph-logo { text-align: center; line-height: 1; text-decoration: none; }
.ph-logo .wm { font: 400 21px "Cormorant Garamond", serif; letter-spacing: 0.16em; color: #3f3829; padding-left: 0.16em; }
.ph-logo .sub { font: 400 8px "Jost", sans-serif; letter-spacing: 0.34em; text-transform: uppercase; color: #b19a72; margin-top: 6px; }

/* ---- Announcement bar --------------------------------------------- */
.ph-announce .elementor-heading-title {
	color: #fff;
	font: 400 11px/1 "Jost", sans-serif;
	letter-spacing: 0.22em;
	text-transform: uppercase;
}

/* ---- Footer lockup ------------------------------------------------- */
.ph-foot-lockup { display: flex; align-items: center; gap: 15px; }
.ph-foot-lockup .wm { font: 400 18px "Cormorant Garamond", serif; letter-spacing: 0.16em; color: #3f3829; line-height: 1.35; }
.ph-foot-lockup .sub { font: 400 7.5px "Jost", sans-serif; letter-spacing: 0.3em; text-transform: uppercase; color: #a29a89; margin-top: 3px; }

@media (max-width: 767px) {
	.ph-nav { gap: 14px; flex-wrap: wrap; justify-content: center; font-size: 11px; }
}

/* ---- Inline button pairs ------------------------------------------ */
.ph-btn-row { display: flex; gap: 14px; flex-wrap: wrap; }
.ph-btn-row a {
	font: 400 11px "Jost", sans-serif;
	letter-spacing: 0.16em;
	text-transform: uppercase;
	padding: 15px 26px;
	text-decoration: none;
	display: inline-block;
	border: none;
}
a.ph-btn-sage { background: #a4ad94; color: #fff; }
a.ph-btn-sand { background: #c1b3a1; color: #4a4234; }
a.ph-btn-white { background: #fff; color: #4a4234; }

/* ---- Hero headline shadow ----------------------------------------- */
.ph-hero-h1 .elementor-heading-title { text-shadow: 0 2px 20px rgba(16, 12, 8, 0.4); }

/* ---- Section-title rule (Our Shepherds Females/Males) ------------- */
.ph-rule .elementor-heading-title { border-bottom: 1px solid #e2d9c9; padding-bottom: 12px; }

/* ---- Caption line under card titles -------------------------------- */
.ph-caption { font: 400 12px "Jost", sans-serif; letter-spacing: 0.06em; text-transform: uppercase; color: #b19a72; }

/* ---- Hero content width ------------------------------------------- */
.ph-hero-overlay .ph-hero-content { max-width: 640px; }

/* Elementor Canvas has no theme margins; keep sections edge-to-edge. */
.elementor-page .ph-header,
.elementor-page .ph-footer { width: 100%; }

/* ================================================================== */
/*  DESIGN-SYSTEM GUARANTEE                                            */
/*  These rules pin the things that MUST be identical on every page   */
/*  (fonts, centering, column widths, cards, bands, hero, page bg) to */
/*  stable classes, so the site never drifts when Elementor's         */
/*  per-page generated CSS is stale, uneven, or cached. Native        */
/*  Elementor settings still drive editable details (colors, sizes,   */
/*  padding) and win once regenerated.                                */
/* ================================================================== */

/* Page canvas + base body font */
.pinehill-page { background: #f6f2ec; }
.pinehill-page .elementor-widget-text-editor,
.pinehill-page .elementor-widget-text-editor p { font-family: "Jost", sans-serif; }

/* Font roles — the fix for the script/serif fallback */
.ph-display .elementor-heading-title { font-family: "Cormorant Garamond", serif !important; }
.ph-script .elementor-heading-title  { font-family: "Sacramento", cursive !important; }
.ph-ui .elementor-heading-title      { font-family: "Jost", sans-serif !important; }

/* Centering — guaranteed, not dependent on per-page CSS */
.ph-center,
.ph-center .elementor-heading-title,
.ph-center .elementor-widget-container { text-align: center !important; }
.ph-center .elementor-button-wrapper { text-align: center !important; }
.ph-mx-auto .elementor-widget-container { margin-left: auto; margin-right: auto; }

/* Card + band backgrounds and card shadow */
.ph-cardbg { background-color: #fff !important; }
.ph-band { background-color: #efe9df !important; }
.ph-shadow { box-shadow: 0 20px 60px rgba(90, 78, 58, 0.09) !important; }

/* Hero sizing (the photo itself comes from the section background) */
.ph-hero-overlay {
	min-height: 640px;
	display: flex;
	align-items: flex-end;
	background-size: cover !important;
	background-position: center !important;
}

/* Column widths — desktop only; below 768px Elementor stacks them to 100% */
@media (min-width: 768px) {
	.pinehill-page .elementor-column.ph-iw-100 { width: 100% !important; }
	.pinehill-page .elementor-column.ph-iw-57  { width: 56.52% !important; flex: 0 0 56.52% !important; max-width: 56.52% !important; }
	.pinehill-page .elementor-column.ph-iw-55  { width: 54.55% !important; flex: 0 0 54.55% !important; max-width: 54.55% !important; }
	.pinehill-page .elementor-column.ph-iw-54  { width: 53.50% !important; flex: 0 0 53.50% !important; max-width: 53.50% !important; }
	.pinehill-page .elementor-column.ph-iw-50  { width: 50% !important;    flex: 0 0 50% !important;    max-width: 50% !important; }
	.pinehill-page .elementor-column.ph-iw-47  { width: 46.50% !important; flex: 0 0 46.50% !important; max-width: 46.50% !important; }
	.pinehill-page .elementor-column.ph-iw-45  { width: 45.45% !important; flex: 0 0 45.45% !important; max-width: 45.45% !important; }
	.pinehill-page .elementor-column.ph-iw-43  { width: 43.48% !important; flex: 0 0 43.48% !important; max-width: 43.48% !important; }
	.pinehill-page .elementor-column.ph-iw-33  { width: 33.33% !important; flex: 0 0 33.33% !important; max-width: 33.33% !important; }
	.pinehill-page .elementor-column.ph-iw-25  { width: 25% !important;    flex: 0 0 25% !important;    max-width: 25% !important; }
}
