/*
Theme Name:   Passion Hair
Theme URI:    https://www.passion-hair.co.uk
Description:  Child theme of Hello Elementor for Passion Hair, St John's Wood. Built-in header, footer, salon details, enquiry forms, schema and one-click setup (Appearance → Passion Hair Setup).
Author:       BOOSTmySALON
Author URI:   https://boostmysalon.co.uk
Template:     hello-elementor
Version:      1.0.0
Requires at least: 6.5
Tested up to: 7.1
Requires PHP: 8.1
License:      GNU General Public License v2 or later
Text Domain:  passion-hair
*/

/* ------------------------------------------------------------------ fonts */
@font-face {
	font-family: "Bodoni Moda";
	src: url("assets/fonts/bodoni-moda-latin-opsz-normal.woff2") format("woff2-variations");
	font-weight: 400 900;
	font-style: normal;
	font-display: swap;
}
@font-face {
	font-family: "Bodoni Moda";
	src: url("assets/fonts/bodoni-moda-latin-opsz-italic.woff2") format("woff2-variations");
	font-weight: 400 900;
	font-style: italic;
	font-display: swap;
}
@font-face {
	font-family: "Instrument Sans";
	src: url("assets/fonts/instrument-sans-latin-wght-normal.woff2") format("woff2-variations");
	font-weight: 400 700;
	font-style: normal;
	font-display: swap;
}

/* ------------------------------------------------------------------ tokens */
:root {
	--ph-ink: #1d1a1e;
	--ph-plum: #4a2c3d;
	--ph-plum-deep: #3a2230;
	--ph-mist: #eeeaec;
	--ph-sage: #dde3da;
	--ph-sage-ink: #3d4a3b;
	--ph-stone: #6b6468;
	--ph-line: #ddd6da;
	--ph-paper: #ffffff;

	--ph-serif: "Bodoni Moda", "Didot", "Bodoni 72", Georgia, serif;
	--ph-sans: "Instrument Sans", "Helvetica Neue", Arial, sans-serif;

	--ph-max: 1200px;
	--ph-gutter: clamp(20px, 4vw, 32px);
	--ph-sec-pad: clamp(64px, 9vw, 120px);
	--ph-radius: 2px;
}

/* ------------------------------------------------------------------ base */
html { scroll-behavior: smooth; scroll-padding-top: 96px; }
html.ph-lock { overflow: hidden; }
@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } }

body {
	font-family: var(--ph-sans);
	font-size: 17px;
	line-height: 1.62;
	color: var(--ph-ink);
	background: var(--ph-paper);
	-webkit-font-smoothing: antialiased;
	font-feature-settings: "kern", "liga";
}

h1, h2, h3, h4, h5, h6,
.elementor-widget-heading .elementor-heading-title {
	font-family: var(--ph-serif);
	font-weight: 400;
	color: inherit;
	line-height: 1.12;
	letter-spacing: -0.01em;
	font-optical-sizing: auto;
	text-wrap: balance;
}
p { text-wrap: pretty; }

a { color: var(--ph-plum); text-underline-offset: 0.18em; text-decoration-thickness: 1px; }
a:hover { color: var(--ph-ink); }
:focus-visible { outline: 2px solid var(--ph-plum); outline-offset: 3px; }

img { max-width: 100%; height: auto; }

.screen-reader-text:focus { clip: auto !important; clip-path: none; height: auto; width: auto; z-index: 999; background: #fff; padding: 12px 16px; top: 8px; left: 8px; }

/* ------------------------------------------------------------------ buttons */
.ph-btn,
.elementor-widget-button .elementor-button {
	display: inline-flex;
	align-items: center;
	justify-content: center;
	gap: 0.5em;
	font-family: var(--ph-sans);
	font-size: 15px;
	font-weight: 600;
	letter-spacing: 0.01em;
	line-height: 1;
	padding: 17px 28px;
	border-radius: var(--ph-radius);
	border: 1px solid var(--ph-plum);
	background: var(--ph-plum);
	color: #fff;
	text-decoration: none;
	transition: background-color .2s ease, color .2s ease, border-color .2s ease;
	cursor: pointer;
}
.ph-btn:hover,
.elementor-widget-button .elementor-button:hover,
.elementor-widget-button .elementor-button:focus-visible {
	background: var(--ph-ink);
	border-color: var(--ph-ink);
	color: #fff;
}
.ph-btn--small { padding: 12px 20px; font-size: 14px; }
.elementor-widget-button.ph-b--ghost .elementor-button {
	background: transparent;
	color: var(--ph-plum);
}
.elementor-widget-button.ph-b--ghost .elementor-button:hover {
	background: var(--ph-plum);
	color: #fff;
	border-color: var(--ph-plum);
}
.ph-btn--light, .ph-footer a.ph-btn--light,
.elementor-widget-button.ph-b--light .elementor-button {
	background: #fff;
	border-color: #fff;
	color: var(--ph-plum-deep);
}
.ph-btn--light:hover, .ph-footer a.ph-btn--light:hover,
.elementor-widget-button.ph-b--light .elementor-button:hover {
	background: transparent;
	color: #fff;
	border-color: #fff;
}

/* ------------------------------------------------------------------ header */
.ph-header {
	position: sticky;
	top: 0;
	z-index: 100;
	background: rgba(255, 255, 255, 0.96);
	backdrop-filter: saturate(140%) blur(8px);
	border-bottom: 1px solid transparent;
	transition: border-color .2s ease;
}
.admin-bar .ph-header { top: 32px; }
@media (max-width: 782px) { .admin-bar .ph-header { top: 46px; } }
.ph-header.is-scrolled { border-bottom-color: var(--ph-line); }
.ph-header__inner {
	max-width: calc(var(--ph-max) + 2 * var(--ph-gutter));
	margin: 0 auto;
	padding: 14px var(--ph-gutter);
	display: flex;
	align-items: center;
	gap: 32px;
}
.ph-logo { display: inline-flex; align-items: center; text-decoration: none; color: var(--ph-ink); flex-shrink: 0; }
.ph-logo-img { height: 46px; width: auto; display: block; }
.ph-logo-text { font-family: var(--ph-serif); font-size: 28px; letter-spacing: -0.01em; }

.ph-nav { display: flex; align-items: center; gap: 28px; margin-left: auto; }
.ph-menu { list-style: none; margin: 0; padding: 0; display: flex; gap: 26px; }
.ph-menu > li { position: relative; }
.ph-menu a {
	font-size: 15px;
	font-weight: 500;
	color: var(--ph-ink);
	text-decoration: none;
	padding: 8px 0;
	display: inline-block;
	border-bottom: 1px solid transparent;
}
.ph-menu a:hover,
.ph-menu .current-menu-item > a,
.ph-menu .current_page_item > a { border-bottom-color: var(--ph-plum); color: var(--ph-plum); }
.ph-menu .sub-menu {
	list-style: none;
	margin: 0;
	padding: 10px 0;
	position: absolute;
	top: 100%;
	left: -18px;
	min-width: 180px;
	background: #fff;
	border: 1px solid var(--ph-line);
	opacity: 0;
	visibility: hidden;
	transform: translateY(4px);
	transition: opacity .15s ease, transform .15s ease, visibility .15s;
}
.ph-menu li:hover > .sub-menu,
.ph-menu li:focus-within > .sub-menu { opacity: 1; visibility: visible; transform: none; }
.ph-menu .sub-menu a { display: block; padding: 8px 18px; border: 0; }
.ph-nav__actions { display: flex; align-items: center; gap: 20px; }
.ph-header__phone { font-size: 15px; font-weight: 500; color: var(--ph-ink); text-decoration: none; white-space: nowrap; font-variant-numeric: tabular-nums; }

.ph-nav-toggle {
	display: none;
	margin-left: auto;
	background: none;
	border: 0;
	padding: 10px 0;
	color: var(--ph-ink);
	font: 600 15px/1 var(--ph-sans);
	align-items: center;
	gap: 10px;
	cursor: pointer;
}
.ph-nav-toggle:hover, .ph-nav-toggle:focus { background: none; color: var(--ph-plum); }
.ph-nav-toggle__bars, .ph-nav-toggle__bars::before, .ph-nav-toggle__bars::after {
	display: block; width: 22px; height: 1.5px; background: currentColor; position: relative; transition: transform .2s ease, background .2s;
}
.ph-nav-toggle__bars::before, .ph-nav-toggle__bars::after { content: ""; position: absolute; left: 0; }
.ph-nav-toggle__bars::before { top: -7px; }
.ph-nav-toggle__bars::after { top: 7px; }
.ph-header.is-open .ph-nav-toggle__bars { background: transparent; }
.ph-header.is-open .ph-nav-toggle__bars::before { transform: translateY(7px) rotate(45deg); }
.ph-header.is-open .ph-nav-toggle__bars::after { transform: translateY(-7px) rotate(-45deg); }

@media (max-width: 1080px) {
	.ph-header__phone { display: none; }
}
@media (max-width: 960px) {
	.ph-logo-img { height: 38px; }
	.ph-nav-toggle { display: inline-flex; }
	.ph-nav {
		position: fixed;
		inset: 66px 0 0 0;
		background: #fff;
		flex-direction: column;
		align-items: stretch;
		gap: 0;
		padding: 12px var(--ph-gutter) 40px;
		overflow-y: auto;
		opacity: 0;
		visibility: hidden;
		transition: opacity .2s ease, visibility .2s;
	}
	.admin-bar .ph-nav { top: 112px; }
	.ph-header.is-open .ph-nav { opacity: 1; visibility: visible; }
	.ph-menu { flex-direction: column; gap: 0; }
	.ph-menu a { font-family: var(--ph-serif); font-size: 28px; font-weight: 400; padding: 12px 0; border: 0; }
	.ph-menu .sub-menu { position: static; opacity: 1; visibility: visible; transform: none; border: 0; padding: 0 0 8px 18px; }
	.ph-menu .sub-menu a { font-size: 20px; padding: 8px 0; }
	.ph-nav__actions { margin-top: 24px; flex-direction: column; align-items: stretch; }
	.ph-header__phone { display: block; font-size: 18px; padding: 8px 0; }
	.ph-nav__actions .ph-btn { padding: 18px; font-size: 16px; }
}

/* ------------------------------------------------------------------ Elementor containers */
.e-con.ph-sec {
	--padding-top: var(--ph-sec-pad);
	--padding-bottom: var(--ph-sec-pad);
	--padding-left: var(--ph-gutter);
	--padding-right: var(--ph-gutter);
	--gap: clamp(32px, 5vw, 72px);
	--row-gap: clamp(32px, 5vw, 72px);
	--column-gap: clamp(32px, 5vw, 72px);
}
/* Two white sections in a row share their spacing; coloured bands keep full padding. */
.e-con.ph-sec:not(.ph-bg) + .e-con.ph-sec:not(.ph-bg):not(.ph-price-sec) { --padding-top: 0px; }
.e-con .e-con[class*="ph-"] { --padding-top: 0px; --padding-bottom: 0px; --padding-left: 0px; --padding-right: 0px; }
.e-con.ph-sec .e-con { --gap: 20px; --row-gap: 20px; --column-gap: 20px; }

/* Reset Elementor's default widget spacing inside our rich text */
.elementor-widget-text-editor p:last-child { margin-bottom: 0; }
.elementor-widget-text-editor p { margin: 0 0 1em; }

/* ------------------------------------------------------------------ headings */
.ph-h .elementor-heading-title { font-size: clamp(2rem, 3.6vw, 3rem); }
.ph-h--small .elementor-heading-title { font-size: clamp(1.5rem, 2.2vw, 1.875rem); }
.ph-h3 .elementor-heading-title, .ph-prose h2 { font-size: 1.5rem; }
.ph-h--light .elementor-heading-title { color: #fff; }
.ph-h-display .elementor-heading-title { font-size: clamp(2.25rem, 4.4vw, 3.75rem); line-height: 1.05; }
.ph-kicker .elementor-heading-title {
	font-family: var(--ph-sans);
	font-size: 15px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--ph-plum);
}
.ph-from { font-family: var(--ph-serif); font-size: 1.75rem; line-height: 1.2; color: var(--ph-plum); }

/* ------------------------------------------------------------------ hero (the one bold moment) */
.e-con.ph-hero {
	--padding-top: 0px;
	--padding-bottom: 0px;
	--padding-left: 0px;
	--padding-right: 0px;
	--gap: 0px; --row-gap: 0px; --column-gap: 0px;
	background: var(--ph-mist);
	min-height: min(88vh, 860px);
	align-items: stretch;
}
.e-con.ph-hero.ph-hero--sage { background: var(--ph-sage); }
.e-con.ph-hero > .e-con.ph-hero__text {
	--padding-top: clamp(56px, 8vw, 120px);
	--padding-bottom: clamp(56px, 8vw, 120px);
	--padding-left: max(var(--ph-gutter), calc((100vw - var(--ph-max)) / 2));
	--padding-right: clamp(24px, 5vw, 80px);
	--gap: 22px; --row-gap: 22px;
	justify-content: center;
}
.ph-hero__h1 .elementor-heading-title,
.ph-hero--sage .ph-title .elementor-heading-title {
	font-family: var(--ph-sans);
	font-size: 16px;
	font-weight: 500;
	letter-spacing: 0;
	color: var(--ph-plum);
	line-height: 1.4;
}
.ph-hero--sage .ph-title .elementor-heading-title { color: var(--ph-sage-ink); }
.ph-hero--sage .ph-kicker { display: none; }
.ph-hero__display .elementor-heading-title {
	font-size: clamp(3rem, 6.6vw, 6.25rem);
	line-height: 0.98;
	letter-spacing: -0.025em;
	color: var(--ph-ink);
	font-variation-settings: "opsz" 96;
}
.ph-hero--sage .ph-lead { font-family: var(--ph-serif); font-size: clamp(1.75rem, 3.4vw, 2.75rem); line-height: 1.12; }
.ph-hero--sage .ph-lead .ph-from { font-family: var(--ph-sans); font-size: 18px; font-weight: 600; color: var(--ph-sage-ink); margin-top: 1em; }
.ph-hero__lead { max-width: 34em; font-size: 18px; color: var(--ph-stone); }
.e-con.ph-hero > .e-con.ph-hero__media {
	--padding-top: clamp(24px, 4vw, 56px);
	--padding-right: clamp(0px, 4vw, 56px);
	--padding-left: 0px;
	--padding-bottom: 0px;
	justify-content: flex-end;
}
.ph-hero__img, .ph-hero__img .elementor-widget-container { height: 100%; }
.ph-hero__img img {
	width: 100%;
	height: 100%;
	min-height: 420px;
	max-height: 820px;
	object-fit: cover;
	border-radius: 999px 999px 0 0;
	display: block;
}
.ph-actions { --gap: 12px !important; --row-gap: 12px !important; --column-gap: 12px !important; margin-top: 10px; }
.ph-actions > .elementor-widget { width: auto; }

@media (max-width: 767px) {
	.e-con.ph-hero { min-height: 0; }
	.e-con.ph-hero > .e-con.ph-hero__text { --padding-top: 48px; --padding-bottom: 40px; --padding-left: var(--ph-gutter); --padding-right: var(--ph-gutter); }
	.e-con.ph-hero > .e-con.ph-hero__media { --padding-left: var(--ph-gutter); --padding-right: var(--ph-gutter); }
	.ph-hero__img img { min-height: 0; aspect-ratio: 4 / 4.4; }
}

/* ------------------------------------------------------------------ intro / prose */
.ph-intro .ph-intro__t { font-size: 18px; }
.ph-intro .ph-intro__h { position: relative; }
.ph-prose { font-size: 18px; max-width: 38em; }
.ph-legal { font-size: 17px; max-width: 46em; }
.ph-legal h2 { font-size: 1.5rem; margin: 2em 0 .6em; }
.ph-legal ul { padding-left: 1.2em; }
.ph-lead { font-size: 19px; max-width: 36em; color: var(--ph-stone); }
.ph-note { font-size: 15px; color: var(--ph-stone); border-left: 2px solid var(--ph-plum); padding-left: 14px; }
.ph-offer { background: var(--ph-mist); padding: 14px 18px; font-size: 15px; }
.ph-ticks { list-style: none; padding: 0; margin: 0; }
.ph-ticks li { padding: 14px 0 14px 30px; border-bottom: 1px solid var(--ph-line); position: relative; }
.ph-ticks li::before { content: ""; position: absolute; left: 2px; top: 1.15em; width: 12px; height: 6px; border-left: 1.5px solid var(--ph-sage-ink); border-bottom: 1.5px solid var(--ph-sage-ink); transform: rotate(-45deg); }

/* ------------------------------------------------------------------ page heads */
.e-con.ph-pagehead { --padding-top: clamp(56px, 8vw, 104px); --padding-bottom: clamp(40px, 5vw, 64px); --gap: 16px; --row-gap: 16px; background: var(--ph-mist); }

.ph-title .elementor-heading-title { font-size: clamp(2.75rem, 6vw, 5rem); line-height: 1; letter-spacing: -0.02em; }

/* ------------------------------------------------------------------ feature bands */
.e-con.ph-feature { align-items: center; }
.e-con.ph-feature--sage { background: var(--ph-sage); }
.e-con.ph-feature--mist { background: var(--ph-mist); }
.ph-feature__img img { width: 100%; aspect-ratio: 5 / 4; object-fit: cover; display: block; }
.e-con.ph-feature__text { --gap: 18px; --row-gap: 18px; max-width: 34em; }

/* ------------------------------------------------------------------ services list (home) */
.ph-services { list-style: none; margin: 0; padding: 0; border-top: 1px solid var(--ph-ink); }
.ph-services a {
	display: grid;
	grid-template-columns: 9rem 1fr auto;
	gap: 6px 24px;
	align-items: baseline;
	padding: 22px 0;
	border-bottom: 1px solid var(--ph-line);
	text-decoration: none;
	color: var(--ph-ink);
	transition: color .2s ease;
}
.ph-services a:hover { color: var(--ph-plum); }
.ph-services__name { font-family: var(--ph-serif); font-size: 1.75rem; line-height: 1.1; }
.ph-services__desc { color: var(--ph-stone); font-size: 16px; }
.ph-services__price { font-variant-numeric: tabular-nums; font-weight: 600; white-space: nowrap; }
@media (max-width: 640px) {
	.ph-services a { grid-template-columns: 1fr auto; }
	.ph-services__desc { grid-column: 1 / -1; grid-row: 2; }
}

/* ------------------------------------------------------------------ story band */
.e-con.ph-story { background: var(--ph-plum); color: #f4eef1; align-items: center; }
.ph-story .elementor-widget-text-editor { color: #e7dde2; font-size: 18px; }
.ph-story .ph-kicker .elementor-heading-title { color: #d9c3cf; }
.ph-pull { margin: 0; padding: 0; border: 0; }
.ph-pull p { font-family: var(--ph-serif); font-style: italic; font-size: clamp(1.5rem, 2.4vw, 2rem); line-height: 1.3; margin: 0 0 16px; }
.ph-pull cite { font-style: normal; font-size: 15px; font-weight: 500; }
.ph-story .ph-pull p { color: #fff; }
.ph-story .ph-pull cite { color: #d9c3cf; }
.ph-pull--large { max-width: 30em; margin: 0 auto; text-align: center; }
.ph-pull--large p { font-size: clamp(1.75rem, 3vw, 2.5rem); color: var(--ph-plum-deep); }

/* ------------------------------------------------------------------ reviews */
.e-con.ph-reviews { --gap: 36px; --row-gap: 36px; }
.ph-quotes { --gap: 40px !important; --column-gap: 40px !important; }
.ph-quote-card { border-top: 1px solid var(--ph-ink); --padding-top: 24px !important; }
.ph-quote .elementor-testimonial-wrapper { text-align: left; }
.ph-quote .elementor-testimonial-content { font-family: var(--ph-serif); font-size: 1.25rem; line-height: 1.45; color: var(--ph-ink); margin-bottom: 20px; }
.ph-quote .elementor-testimonial-name { font-family: var(--ph-sans); font-weight: 600; font-size: 15px; color: var(--ph-ink); }
.ph-quote .elementor-testimonial-job { font-family: var(--ph-sans); font-size: 14px; color: var(--ph-stone); }
.ph-quote .elementor-testimonial-meta, .ph-quote .elementor-testimonial-meta-inner { display: block; text-align: left; }
.ph-quote .elementor-testimonial-details { padding: 0 !important; text-align: left !important; }

/* ------------------------------------------------------------------ brands */
.e-con.ph-brands-sec { --gap: 28px; --row-gap: 28px; align-items: center; text-align: center; }
.ph-brands { justify-content: center; align-items: center; }
.ph-brand img { max-height: 64px; width: auto; filter: grayscale(1); opacity: .75; transition: opacity .2s, filter .2s; }
.ph-brand img:hover { filter: none; opacity: 1; }

/* ------------------------------------------------------------------ CTA band */
.e-con.ph-cta { background: var(--ph-ink); color: #ece6e9; align-items: center; }
.e-con.ph-sec.ph-cta { --padding-top: clamp(56px, 7vw, 96px); }
.ph-cta .elementor-heading-title { color: #fff; }
.ph-cta .elementor-widget-text-editor { color: #c9c0c5; font-size: 18px; }
.ph-call { margin: 0; color: #c9c0c5; font-size: 16px; }
.ph-call a { color: #fff; font-variant-numeric: tabular-nums; }
.e-con.ph-cta__act { --gap: 18px !important; --row-gap: 18px !important; align-items: flex-start; }

/* ------------------------------------------------------------------ price menu */
.e-con.ph-jump-sec { --padding-top: 0px !important; --padding-bottom: 0px; position: sticky; top: 74px; z-index: 20; background: #fff; border-bottom: 1px solid var(--ph-line); }
.admin-bar .e-con.ph-jump-sec { top: 106px; }
.ph-jump ul { list-style: none; margin: 0; padding: 0; display: flex; gap: 6px 26px; overflow-x: auto; scrollbar-width: none; }
.ph-jump ul::-webkit-scrollbar { display: none; }
.ph-jump a { display: block; white-space: nowrap; padding: 16px 0; font-size: 15px; font-weight: 500; color: var(--ph-ink); text-decoration: none; border-bottom: 1.5px solid transparent; }
.ph-jump a:hover { color: var(--ph-plum); border-bottom-color: var(--ph-plum); }
.e-con.ph-price-sec { --padding-top: clamp(56px, 7vw, 96px) !important; --padding-bottom: 0px; scroll-margin-top: 130px; }
.e-con.ph-price-sec + .ph-cta { margin-top: var(--ph-sec-pad); }
.e-con.ph-price-intro { --gap: 18px !important; --row-gap: 18px !important; align-self: flex-start; }
@media (min-width: 768px) { .e-con.ph-price-intro { position: sticky; top: 150px; } .admin-bar .e-con.ph-price-intro { top: 182px; } }
.ph-price { width: 100%; border-collapse: collapse; font-size: 16px; font-variant-numeric: tabular-nums lining-nums; }
.ph-price th, .ph-price td { border: 0; border-bottom: 1px solid var(--ph-line); padding: 14px 0; text-align: left; vertical-align: baseline; background: none; }
.ph-price thead th { font-size: 13px; font-weight: 600; color: var(--ph-stone); border-bottom: 1px solid var(--ph-ink); padding-top: 0; }
.ph-price tbody th { font-weight: 500; padding-right: 16px; }
.ph-price td { text-align: right; white-space: nowrap; padding-left: 16px; width: 7.5em; }
.ph-price thead th:not(:first-child) { text-align: right; }
.ph-price tbody tr:hover th, .ph-price tbody tr:hover td { background: #faf8f9; }
.elementor-widget-text-editor .ph-price { margin: 0; }
table.ph-price tbody > tr:nth-child(odd) > td,
table.ph-price tbody > tr:nth-child(odd) > th,
table.ph-price tbody tr:hover > td,
table.ph-price tbody tr:hover > th { background-color: transparent; }
@media (max-width: 520px) {
	.ph-price { font-size: 15px; }
	.ph-price td { width: auto; padding-left: 10px; }
}

/* ------------------------------------------------------------------ contact */
.ph-contact { margin: 0; display: grid; gap: 18px; }
.ph-contact div { display: grid; grid-template-columns: 6.5rem 1fr; gap: 12px; }
.ph-contact dt { font-size: 14px; font-weight: 600; color: var(--ph-stone); }
.ph-contact dd { margin: 0; }
.ph-contact a { color: var(--ph-ink); text-decoration: none; border-bottom: 1px solid var(--ph-line); }
.ph-contact a:hover { color: var(--ph-plum); border-color: var(--ph-plum); }
.ph-contact small { color: var(--ph-stone); font-size: 14px; }
.ph-hours { list-style: none; margin: 0; padding: 0; }
.ph-hours li { display: flex; justify-content: space-between; gap: 16px; padding: 9px 0; border-bottom: 1px solid var(--ph-line); font-variant-numeric: tabular-nums; }
.ph-hours li.is-today { font-weight: 600; }
.e-con.ph-contact__aside { --gap: 22px !important; --row-gap: 22px !important; background: var(--ph-mist); --padding-top: 36px !important; --padding-bottom: 36px !important; --padding-left: 36px !important; --padding-right: 36px !important; align-self: flex-start; }
.e-con.ph-map-sec { --padding-left: 0px; --padding-right: 0px; --padding-top: var(--ph-sec-pad) !important; --padding-bottom: 0px; }
.ph-map iframe { width: 100%; height: 440px; border: 0; display: block; filter: grayscale(.4); }

/* ------------------------------------------------------------------ forms */
.ph-form { display: grid; gap: 4px; }
.ph-field { margin: 0 0 14px; display: grid; gap: 6px; }
.ph-field-row { display: grid; grid-template-columns: 1fr 1fr; gap: 0 16px; }
@media (max-width: 600px) { .ph-field-row { grid-template-columns: 1fr; } }
.ph-field label { font-size: 15px; font-weight: 500; }
.ph-field small { font-weight: 400; color: var(--ph-stone); }
.ph-form input[type=text], .ph-form input[type=email], .ph-form input[type=tel], .ph-form select, .ph-form textarea {
	width: 100%;
	font: 16px/1.4 var(--ph-sans);
	color: var(--ph-ink);
	background: #fff;
	border: 1px solid #cfc6cb;
	border-radius: var(--ph-radius);
	padding: 13px 14px;
}
.ph-form input:focus, .ph-form select:focus, .ph-form textarea:focus { border-color: var(--ph-plum); outline: 2px solid rgba(74, 44, 61, .18); outline-offset: 0; }
.ph-form input[type=file] { font-size: 15px; }
.ph-consent label { font-weight: 400; font-size: 14px; color: var(--ph-stone); display: flex; gap: 10px; align-items: flex-start; }
.ph-consent input { margin-top: 4px; accent-color: var(--ph-plum); }
.ph-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
.ph-form-msg { padding: 16px 18px; margin: 0 0 20px; font-weight: 500; }
.ph-form-msg.is-ok { background: var(--ph-sage); color: var(--ph-sage-ink); }
.ph-form-msg.is-err { background: #f6e3e6; color: #7a1f33; }

/* ------------------------------------------------------------------ images, gallery */
.ph-portrait img { width: 100%; aspect-ratio: 4 / 5; object-fit: cover; border-radius: 999px 999px 0 0; }
.ph-gallery .gallery { display: grid; grid-template-columns: repeat(3, 1fr); gap: 16px; margin: 0 !important; }
.ph-gallery .gallery-item { margin: 0 !important; width: auto !important; max-width: none !important; padding: 0 !important; }
.ph-gallery .gallery-item img { width: 100%; aspect-ratio: 1; object-fit: cover; border: 0 !important; }
@media (max-width: 640px) { .ph-gallery .gallery { grid-template-columns: 1fr; } }

/* ------------------------------------------------------------------ footer */
.ph-footer { background: var(--ph-ink); color: #c9c0c5; font-size: 15px; }
.ph-footer a { color: #fff; text-decoration: none; }
.ph-footer a:hover { color: #d9c3cf; }
.ph-footer__inner {
	max-width: calc(var(--ph-max) + 2 * var(--ph-gutter));
	margin: 0 auto;
	padding: clamp(56px, 7vw, 88px) var(--ph-gutter) 48px;
	display: grid;
	grid-template-columns: 1.3fr 1fr 1fr;
	gap: 48px;
}
.ph-footer__brand p { max-width: 26em; margin: 20px 0; }
.ph-logo--light .ph-logo-img { height: 44px; }
.ph-logo--light .ph-logo-text { color: #fff; }
.ph-footer__title { font-family: var(--ph-sans); font-size: 14px; font-weight: 600; color: #a99ea4; margin: 0 0 16px; letter-spacing: 0; }
.ph-footer .ph-contact dt { color: #a99ea4; }
.ph-footer .ph-contact a { color: #fff; border-color: #4b444a; }
.ph-footer .ph-contact small { color: #a99ea4; }
.ph-footer .ph-hours li { border-color: #3a3439; }
.ph-footer .ph-btn { margin-top: 20px; }
.ph-social { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 20px; }
.ph-social a { border-bottom: 1px solid #4b444a; padding-bottom: 2px; }
.ph-footer__base {
	max-width: calc(var(--ph-max) + 2 * var(--ph-gutter));
	margin: 0 auto;
	padding: 22px var(--ph-gutter) 32px;
	border-top: 1px solid #3a3439;
	display: flex;
	flex-wrap: wrap;
	gap: 10px 28px;
	align-items: center;
	font-size: 14px;
}
.ph-footer__base p { margin: 0; }
.ph-footer-menu { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 8px 22px; }
.ph-credit { margin-left: auto !important; }
.ph-credit a { color: #a99ea4; }
@media (max-width: 900px) {
	.ph-footer__inner { grid-template-columns: 1fr 1fr; }
	.ph-footer__brand { grid-column: 1 / -1; }
}
@media (max-width: 600px) {
	.ph-footer__inner { grid-template-columns: 1fr; }
	.ph-credit { margin-left: 0 !important; }
}

/* ------------------------------------------------------------------ WhatsApp button */
.ph-wa {
	position: fixed;
	right: 20px;
	bottom: 20px;
	z-index: 90;
	display: inline-flex;
	align-items: center;
	gap: 10px;
	padding: 12px 18px 12px 14px;
	background: #1f7a4d;
	color: #fff;
	border-radius: 999px;
	font: 600 15px/1 var(--ph-sans);
	text-decoration: none;
	box-shadow: 0 6px 20px rgba(20, 40, 30, .25);
}
.ph-wa:hover { background: #17603c; color: #fff; }
@media (max-width: 600px) { .ph-wa span { display: none; } .ph-wa { padding: 14px; } }

/* ------------------------------------------------------------------ blog (Hello templates) */
.page-header, .site-main.post-list, body.blog .site-main, body.archive .site-main, body.single-post .site-main, body.search .site-main {
	max-width: 860px;
	margin-left: auto;
	margin-right: auto;
	padding-left: var(--ph-gutter);
	padding-right: var(--ph-gutter);
}
body.blog .page-header, body.archive .page-header { padding-top: clamp(56px, 8vw, 104px); }
body.blog .page-header .entry-title, body.archive .page-header .entry-title, body.single-post .entry-title { font-size: clamp(2.5rem, 5vw, 4rem); line-height: 1.04; margin: 0 0 24px; }
body.blog article.post, body.archive article.post { padding: 32px 0; border-bottom: 1px solid var(--ph-line); }
body.blog article.post .entry-title, body.archive article.post .entry-title { font-size: 1.875rem; margin: 16px 0 10px; }
body.blog article.post .entry-title a, body.archive article.post .entry-title a { color: var(--ph-ink); text-decoration: none; }
body.blog article.post img, body.archive article.post img { aspect-ratio: 16 / 9; object-fit: cover; width: 100%; }
body.single-post .site-main { padding-top: clamp(56px, 8vw, 104px); padding-bottom: var(--ph-sec-pad); font-size: 18px; }
body.single-post .wp-post-image { margin-bottom: 32px; }
body.single-post .post-tags { font-size: 14px; color: var(--ph-stone); margin-top: 40px; }
