/**
 * Precision Home — final responsive typography and touch polish.
 * Loaded last so legacy section files keep their visual identity while
 * mobile/tablet reading sizes and touch targets remain consistent.
 * @since 3.2.0
 */

@media (max-width: 1024px) {
	:root{
		--ph-mobile-body: 16px;
		--ph-mobile-small: 13px;
		--ph-mobile-h1: clamp(31px, 5.8vw, 42px);
		--ph-mobile-h2: clamp(26px, 4.8vw, 34px);
		--ph-mobile-h3: clamp(20px, 3.4vw, 24px);
	}

	main h1{ font-size: var(--ph-mobile-h1) !important; line-height: 1.28 !important; letter-spacing: -.015em; }
	main h2{ font-size: var(--ph-mobile-h2) !important; line-height: 1.35 !important; letter-spacing: -.01em; }
	main h3{ font-size: var(--ph-mobile-h3) !important; line-height: 1.45 !important; }

	.ph-button,button,input[type="submit"],input[type="button"]{
		min-height: 46px;
	}

	input,select,textarea{
		font-size: 16px;
	}
}

@media (max-width: 767px) {
	:root{
		--ph-mobile-h1: clamp(29px, 8vw, 35px);
		--ph-mobile-h2: clamp(24px, 6.4vw, 29px);
		--ph-mobile-h3: clamp(19px, 5vw, 22px);
	}

	.ph-container{
		width: min(100% - 30px, var(--ph-container, 1200px));
	}

	main{
		overflow-wrap: anywhere;
	}

	/* Main readable copy. Eyebrows/badges keep their intentional compact size. */
	.ph-hero__description,.ph-services-hero__description,.ph-services-hub__lead,.ph-service-single__lead,.ph-service-richtext,.ph-service-richtext p,.ph-service-section__head > p:last-child,.ph-page-hero__lead,.ph-project-before-after__description,.ph-project-single p,.ph-about-page p,.ph-contact-page p,.ph-contact-intro,.ph-faq__description,.ph-blog__description{
		font-size: 15.5px !important;
		line-height: 1.85 !important;
	}

	/* Project cards: readable details without bloating the card. */
	.ph-project-card__media{ aspect-ratio: 16 / 11; }
	.ph-project-card__content{ padding: 18px 16px 16px; }
	.ph-project-card__category{ font-size: 13px; line-height: 1.55; }
	.ph-project-card__title{ font-size: 20px !important; line-height: 1.5 !important; }
	.ph-project-card__excerpt{ font-size: 15px !important; line-height: 1.8; }
	.ph-project-card__badge,.ph-project-card__status{ min-height: 30px; font-size: 11.5px; }
	.ph-project-card__fact-text small{ font-size: 11.5px; }
	.ph-project-card__fact-text strong{ font-size: 13px; }
	.ph-project-card__action{ font-size: 14px; min-height: 42px; }
	.ph-project-card__arrow{ width: 40px; height: 40px; }
	.ph-project-card .ph-before-after--card .ph-before-after__label{ font-size: 11.5px; }

	/* Service page navigation and chips. */
	.ph-service-jump{ overflow-x: auto; scrollbar-width: none; }
	.ph-service-jump::-webkit-scrollbar{ display: none; }
	.ph-service-jump .ph-container{ width: max-content; min-width: 100%; padding-inline: 15px; }
	.ph-service-jump a{ min-height: 42px; font-size: 13px !important; white-space: nowrap; }
	.ph-service-chip-grid span{ font-size: 14px !important; line-height: 1.6; }
	.ph-service-tech-list li,.ph-service-list-card li{ font-size: 15px; line-height: 1.75; }
	.ph-service-single__facts li span{ font-size: 12.5px; }
	.ph-service-single__facts li strong{ font-size: 14px; }

	/* Forms and FAQ need comfortable fingers/readability. */
	.ph-service-single__request-form label,.ph-contact-form label{ font-size: 14px; }
	.ph-service-single__request-form input,.ph-service-single__request-form select,.ph-service-single__request-form textarea,.ph-contact-form input,.ph-contact-form select,.ph-contact-form textarea{ min-height: 48px; font-size: 16px !important; }
	.ph-service-single__request-form textarea,.ph-contact-form textarea{ min-height: 130px; }
	.ph-service-single__faq summary,.ph-contact-page__faq summary{ min-height: 52px; font-size: 16px; line-height: 1.6; }
	.ph-service-single__faq details p,.ph-contact-page__faq details p{ font-size: 15px !important; line-height: 1.8; }

	/* Mobile header must remain compact and not steal the first screen. */
	.ph-topbar{ display: none; }
	.ph-header-main__inner{ min-height: 68px; }
	.ph-header-cta{ display: none !important; }
	.ph-header-call,.ph-mobile-menu-toggle{ width: 44px; height: 44px; min-height: 44px; }

	/* Before/after: full usable area, no grey gutter. */
	.ph-project-card__media > .ph-before-after--card,.ph-project-card__media > .ph-before-after--card > .ph-before-after__media,.ph-project-card__media > .ph-before-after--card .ph-before-after__image,.ph-project-card__media > .ph-before-after--card .ph-before-after__after,.ph-project-card__media > .ph-before-after--card .ph-before-after__after img{
		inset: 0;
		width: 100%;
		height: 100%;
		max-width: none;
		margin: 0;
		object-fit: cover;
	}

	.ph-project-before-after{ padding-block: 72px; }
	.ph-project-before-after__header{ margin-bottom: 32px; }

	/* Avoid motion-heavy effects on touch screens while retaining polish. */
	.ph-project-card:hover .ph-project-card__surface{ transform: none; }
}

@media (max-width: 390px) {
	.ph-container{ width: min(100% - 24px, var(--ph-container, 1200px)); }
	main h1{ font-size: clamp(28px, 8.3vw, 32px) !important; }
	main h2{ font-size: clamp(23px, 6.5vw, 27px) !important; }
	main h3{ font-size: clamp(18px, 5.2vw, 21px) !important; }
	.ph-project-card__excerpt{ font-size: 14.5px !important; }
	.ph-project-card__badge,.ph-project-card__status{ font-size: 11px; }
}

@media (prefers-reduced-motion: reduce) {
	*,*::before,*::after{
		scroll-behavior: auto !important;
		animation-duration: .001ms !important;
		animation-iteration-count: 1 !important;
		transition-duration: .001ms !important;
	}
}

/* v3.3: prevent micro-copy from becoming uncomfortably small on phones. */
@media (max-width: 767px) {
	main small,.ph-trust small,.ph-services-contact small,.ph-footer small{ font-size: max(12.5px, .78125rem); line-height: 1.55; }
	.ph-project-card__badge,.ph-project-card__status,.ph-project-card__fact-text small,.ph-project-card .ph-before-after--card .ph-before-after__label{ font-size: 12.5px !important; }
}

/* v3.4: minimum readable size for auxiliary copy across modular components. */
@media (max-width: 767px) {
	main [class$="__eyebrow"],main [class$="__badge"],main [class$="__label"],main [class$="__meta"]{
		font-size: 12.5px !important;
		line-height: 1.55;
	}
}

/* v3.5: responsive resilience — prevent real overflow instead of only hiding it. */
@media (max-width: 1024px) {
	main :where(section,article,aside,form,fieldset,figure,div),footer :where(section,article,aside,form,fieldset,figure,div){
		min-width: 0;
	}

	main :where(img,video,iframe,embed,object){
		max-width: 100%;
	}

	main :where(pre,code){
		max-width: 100%;
	}

	main pre{
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
	}

	main table{
		display: block;
		max-width: 100%;
		overflow-x: auto;
		-webkit-overflow-scrolling: touch;
		white-space: nowrap;
	}

	main :where(h1,h2,h3,h4,p,li,a,strong,span){
		overflow-wrap: break-word;
	}

	[id]{
		scroll-margin-top: 92px;
	}
}

/* WordPress switches the front-end admin bar to 46px at 782px. */
@media (max-width: 782px) {
	body.admin-bar{
		--ph-admin-offset: 46px;
	}

	.admin-bar .ph-mobile-drawer{
		top: var(--ph-admin-offset, 46px);
		height: calc(100dvh - var(--ph-admin-offset, 46px));
	}
}

@media (max-width: 767px) {
	/* Keep dense action rows usable without clipping long Arabic labels. */
	.ph-service-single__request-actions,.ph-services-request__direct,.ph-project-single-cta__actions,.ph-contact-actions{
		align-items: stretch;
	}

	.ph-service-single__request-actions > a,.ph-services-request__direct > a{
		min-height: 46px;
		white-space: normal;
		text-align: center;
	}

	/* WordPress/editor content: media and tables must fit the phone viewport. */
	.ph-content-entry :where(figure,.wp-block-image,.wp-block-video,.wp-block-embed),.ph-article__body :where(figure,.wp-block-image,.wp-block-video,.wp-block-embed),.ph-service-richtext :where(figure,.wp-block-image,.wp-block-video,.wp-block-embed){
		max-width: 100%;
	}

	.ph-content-entry iframe,.ph-article__body iframe,.ph-service-richtext iframe{
		width: 100%;
	}
}

/* Hover elevation can remain visually stuck on touch devices. */
@media (hover: none) {
	.ph-card:hover,.ph-service-card-v3:hover,.ph-project-card:hover .ph-project-card__surface{
		transform: none;
	}
}

/* v3.5: readable shell typography without enlarging the mobile header. */
@media (max-width: 900px) {
	.ph-branding__text span,.ph-mobile-drawer__brand-text span{
		font-size: 11.5px !important;
		line-height: 1.35;
		letter-spacing: .55px;
	}
}

@media (max-width: 767px) {
	.ph-footer__cities-list span,.ph-footer__cities-list .ph-footer__city-link,.ph-footer__copyright,.ph-footer__credit{
		font-size: 12.5px !important;
		line-height: 1.55;
	}
}


/* ==========================================================================
   Precision Home v3.6 — service/mobile visual QA
   Fixes mobile header spacing, menu markers, service jump navigation,
   execution steps, dark-section contrast and contextual CTA icons.
   ========================================================================== */

/* Dark surfaces must never inherit black headings from generic section rules. */
.ph-section--dark :where(h1,h2,h3,h4),.ph-service-single__hero :where(h1,h2,h3,h4),.ph-service-story :where(h1,h2,h3,h4),.ph-service-single__request :where(h1,h2,h3,h4),.ph-services-hub-hero :where(h1,h2,h3,h4),.ph-services-estimate :where(h1,h2,h3,h4),.ph-services-request :where(h1,h2,h3,h4){
	color: #fff !important;
}
.ph-service-single__request .ph-service-single__eyebrow,.ph-service-story .ph-service-single__eyebrow,.ph-service-single__hero .ph-service-single__eyebrow{
	color: #f1cf62 !important;
}

/* "Ready for the next step" becomes a premium gold-accent conversion block. */
.ph-service-single__request{
	position: relative;
	overflow: hidden;
	background:
		radial-gradient(circle at 12% 12%, rgba(212,175,55,.15), transparent 26%),
		linear-gradient(135deg, #15171b 0%, #2b171d 46%, #742f36 100%);
}
.ph-service-single__request::before{
	content: "";
	position: absolute;
	inset-inline: 0;
	top: 0;
	height: 3px;
	background: linear-gradient(90deg, transparent, #d4af37 18%, #f1d36f 50%, #d4af37 82%, transparent);
}
.ph-service-single__request-actions a{
	display: inline-flex;
	align-items: center;
	justify-content: center;
	min-height: 48px;
	border-color: rgba(212,175,55,.58);
}
.ph-service-single__request-actions a:hover,.ph-service-single__request-actions a:focus-visible{
	background: #d4af37;
	border-color: #d4af37;
	color: #15171b;
}

/* Service process — compact professional cards rather than tall empty boxes. */
.ph-service-single__steps ol{
	counter-reset: steps;
	display: grid;
	grid-template-columns: repeat(3, minmax(0, 1fr));
	gap: 14px;
	margin: 0;
	padding: 0;
	list-style: none;
}
.ph-service-single__steps li{
	counter-increment: steps;
	position: relative;
	display: grid;
	grid-template-columns: 54px minmax(0,1fr);
	align-items: center;
	gap: 14px;
	min-height: 112px;
	padding: 18px;
	margin: 0;
	border: 1px solid #e7dfda;
	border-radius: 18px;
	background: linear-gradient(145deg,#fff,#fbf8f5);
	color: #3f444b;
	font-size: 15.5px;
	font-weight: 650;
	line-height: 1.75;
	box-shadow: 0 10px 28px rgba(21,23,27,.045);
}
.ph-service-single__steps li::before{
	content: none !important;
	display: none !important;
	place-items: center;
	width: 54px;
	height: 54px;
	margin: 0 !important;
	border: 1px solid rgba(212,175,55,.55);
	border-radius: 16px;
	background: linear-gradient(145deg,#8e3b43,#742f36);
	color: #f4d77b !important;
	font-size: 14px;
	font-weight: 900;
	box-shadow: 0 8px 20px rgba(116,47,54,.16);
}
.ph-service-single__steps li:hover{
	border-color: rgba(212,175,55,.62);
	box-shadow: 0 16px 36px rgba(21,23,27,.08);
	transform: translateY(-2px);
}

/* Service jump navigation: clear pill bar, horizontal swipe on small screens. */
.ph-service-jump{
	border-block: 1px solid #eee5df;
	background: rgba(255,255,255,.97);
	box-shadow: 0 8px 24px rgba(21,23,27,.045);
}
.ph-service-jump .ph-container{
	scroll-snap-type: x proximity;
	-webkit-overflow-scrolling: touch;
	overscroll-behavior-inline: contain;
}
.ph-service-jump a{
	scroll-snap-align: start;
	border: 1px solid #eadfda;
	background: #fff;
}
.ph-service-jump a:hover,.ph-service-jump a:focus-visible{
	border-color: rgba(212,175,55,.8);
	background: #fff9e8;
	color: #742f36;
}

/* Contextual CTA uses actual vector phone/WhatsApp icons, never glyph substitutes. */
.ph-mobile-cta__icon{
	display: grid !important;
	place-items: center;
	width: 22px;
	height: 22px;
	line-height: 1 !important;
}
.ph-mobile-cta__icon svg{
	display: block;
	width: 21px;
	height: 21px;
}
.ph-mobile-cta__item--primary .ph-mobile-cta__icon{
	color: #fff;
}

/* No decorative bullet/dot before mobile drawer links. */
.ph-mobile-menu,.ph-mobile-menu ul,.ph-mobile-menu li{
	list-style: none !important;
}
.ph-mobile-menu > li > a::before{
	display: none !important;
	content: none !important;
}
.ph-mobile-menu > li > a{
	padding-inline: 14px 38px !important;
}

/* Image slots keep stable geometry until real project/service imagery is added. */
.ph-service-story__item,.ph-service-story__placeholder{
	aspect-ratio: 4 / 3;
	min-height: 0;
}
.ph-service-story__item img{
	width: 100%;
	height: 100%;
	aspect-ratio: 4 / 3;
	object-fit: cover;
}

/* Compact service breadcrumb; content remains semantic and crawlable. */
.ph-service-breadcrumb{
	min-height: 0;
}

/* Mobile-only structural fixes. */
@media (max-width: 767px) {
	.ph-site-header,.ph-header-main,.ph-header-main__inner{
		margin-block: 0 !important;
	}
	.ph-header-main__inner{
		min-height: 66px !important;
		padding-block: 7px !important;
	}
	.ph-logo img,.ph-logo .custom-logo{
		max-height: 51px !important;
	}
	.ph-mobile-menu-toggle{
		width: 46px !important;
		height: 46px !important;
		min-height: 46px !important;
	}

	/* On phones the service bar is not sticky, preventing header overlap/blank offset. */
	.ph-service-jump,.admin-bar .ph-service-jump{
		position: relative !important;
		top: auto !important;
		z-index: 10;
		overflow: hidden;
	}
	.ph-service-jump .ph-container{
		display: flex;
		width: 100% !important;
		max-width: none !important;
		min-width: 0 !important;
		gap: 8px;
		overflow-x: auto;
		padding: 10px 14px !important;
		scroll-padding-inline: 14px;
	}
	.ph-service-jump a{
		flex: 0 0 auto;
		min-height: 40px;
		padding: 8px 14px;
		font-size: 13px !important;
		font-weight: 800;
		border-radius: 999px;
		white-space: nowrap;
	}

	.ph-service-breadcrumb{
		padding-block: 8px !important;
	}
	.ph-service-breadcrumb .ph-container{
		font-size: 12.5px !important;
		line-height: 1.6;
	}

	.ph-service-single__steps ol{
		grid-template-columns: 1fr !important;
		gap: 12px;
	}
	.ph-service-single__steps li{
		grid-template-columns: 50px minmax(0,1fr);
		gap: 13px;
		min-height: 92px;
		padding: 15px 16px;
		border-radius: 16px;
		font-size: 15px;
	}
	.ph-service-single__steps li::before{
	content: none !important;
	display: none !important;
		width: 50px;
		height: 50px;
		border-radius: 14px;
		font-size: 13px;
	}
	.ph-service-single__steps li:hover{
		transform: none;
	}

	.ph-service-story__grid{
		gap: 14px !important;
	}
	.ph-service-story__item,.ph-service-story__placeholder,.ph-service-story__item img{
		min-height: 0 !important;
		height: auto !important;
		aspect-ratio: 4 / 3;
	}

	.ph-service-single__request{
		padding-block: 58px !important;
	}
	.ph-service-single__request-actions{
		grid-template-columns: 1fr 1fr;
	}
	.ph-service-single__request-actions a{
		min-width: 0;
		padding: 11px 10px;
		font-size: 13.5px;
	}

	.ph-mobile-cta{
		right: 8px !important;
		left: 8px !important;
		bottom: max(8px, env(safe-area-inset-bottom)) !important;
	}
	.ph-mobile-cta__item{
		min-height: 54px !important;
		font-size: 12.5px !important;
	}
}

@media (max-width: 390px) {
	.ph-service-single__request-actions{
		grid-template-columns: 1fr;
	}
}

/* ==========================================================================
   Precision Home v3.7 — full-page contrast and shell polish
   ========================================================================== */

/* Generic managed page hero: global heading tokens must not override dark hero text. */
.ph-page-hero,.ph-page-hero--about,.ph-page-hero--contact{
	color: #fff;
}
.ph-page-hero :where(h1,h2,h3,h4),.ph-page-hero__visual :where(h1,h2,h3,h4,strong){
	color: #fff !important;
}
.ph-page-hero h1 span,.ph-page-hero__eyebrow,.ph-page-hero__visual > span{
	color: #efd16b !important;
}

/* Defensive contrast for all intentionally dark branded sections across pages. */
:is(
	.ph-section--dark,.ph-about-page__hero,.ph-contact-hero,.ph-project-single-hero,.ph-project-single-cta,.ph-services-estimate,.ph-services-request,.ph-services-hub-hero,.ph-service-story,.ph-service-single__hero,.ph-service-single__request
) :where(h1,h2,h3,h4){
	color: #fff !important;
}

/* Mobile drawer: compact rows and no phantom child spacing. */
@media (max-width: 767px) {
	.ph-mobile-drawer__body{
		padding-bottom: max(22px, env(safe-area-inset-bottom));
	}
	.ph-mobile-menu > li{
		min-height: 0;
	}
	.ph-mobile-menu > li > a{
		min-height: 52px;
	}
}



/* v4.0 launch forms: legal links and preferred-contact controls. */
.ph-contact__consent a,.ph-services-request__consent a,.ph-service-single__request-consent a{
	color: inherit;
	text-decoration: underline;
	text-underline-offset: 3px;
	font-weight: 800;
}
.ph-contact__consent a:hover,.ph-services-request__consent a:hover,.ph-service-single__request-consent a:hover{
	color: #d4af37;
}

/* v4.3.2 mobile typography rhythm */
@media(max-width:767px){
  .ph-hero h1,.ph-hero__title{font-size:clamp(34px,9.6vw,46px)!important;line-height:1.27!important;letter-spacing:-.25px!important}
  .ph-hero p,.ph-hero__description{font-size:15px!important;line-height:1.9!important}
  .ph-process__title{font-size:clamp(28px,8vw,36px)!important;line-height:1.35!important}
  .ph-process__description{font-size:14.5px!important;line-height:1.9!important}
  .ph-process__icon{width:52px!important;height:52px!important}.ph-process__icon svg{width:25px!important;height:25px!important}
}


/* v5.6 mobile safety layer */
html{overflow-x:clip}
body{overflow-wrap:anywhere}
img,svg,video,iframe{max-width:100%}
button,a,input,select,textarea{touch-action:manipulation}
:where(a,button,input,select,textarea):focus-visible{outline:3px solid rgba(212,175,55,.75);outline-offset:3px}
@media(max-width:767px){
	.ph-container{width:min(100% - 28px,var(--ph-container,1200px))}
	main h1{line-height:1.18;text-wrap:balance}
	main h2{line-height:1.25;text-wrap:balance}
	main p,main li{line-height:1.85}
	.ph-service-single__actions a,.ph-local-service-actions a,.ph-project-single-cta__actions a{min-height:48px}
}
@media(max-width:390px){
	.ph-container{width:min(100% - 22px,var(--ph-container,1200px))}
	main h1{font-size:clamp(28px,8.5vw,38px)}
}


/* v5.7 visual rhythm */
:where(.ph-service-section,.ph-local-section,.ph-project-overview,.ph-project-before-after,.ph-project-execution-gallery,.ph-project-single-related){
	scroll-margin-top:110px;
}
:where(.ph-service-section__head,.ph-local-section-head,.ph-local-section__head,.ph-project-before-after__header,.ph-project-execution-gallery__head) h2{
	max-width:820px;
	text-wrap:balance;
}
:where(.ph-service-section__head,.ph-local-section-head,.ph-local-section__head,.ph-project-before-after__header,.ph-project-execution-gallery__head) p{
	max-width:760px;
}
@media(max-width:767px){
	:where(.ph-service-section,.ph-local-section,.ph-project-overview,.ph-project-before-after,.ph-project-execution-gallery,.ph-project-single-related){
		padding-top:var(--ph-section-space-mobile);
		padding-bottom:var(--ph-section-space-mobile);
	}
}

/* =========================================================
   v6.2 — desktop-consistent mobile header + tasteful motion
   ========================================================= */
@media (max-width: 767px) {
	/* Keep the same two-level visual language as desktop without forcing a full desktop menu into a narrow screen. */
	.ph-topbar{
		display: block !important;
		min-height: 34px !important;
		padding: 0 !important;
	}
	.ph-topbar__inner{
		display: flex !important;
		min-height: 34px !important;
		padding: 4px 12px !important;
		gap: 8px !important;
		justify-content: space-between !important;
	}
	.ph-topbar__contact,.ph-topbar__actions{
		display: flex !important;
		align-items: center !important;
		gap: 8px !important;
	}
	.ph-topbar__address,.ph-topbar__trust{ display: none !important; }
	.ph-topbar__item{ min-height: 26px !important; gap: 5px !important; }
	.ph-topbar__item-content small{ display: none !important; }
	.ph-topbar__item-content strong{ font-size: 11.5px !important; white-space: nowrap !important; }
	.ph-topbar__icon{ width: 19px !important; height: 19px !important; }
	.ph-topbar__whatsapp{ min-height: 26px !important; padding: 4px 8px !important; border-radius: 999px !important; font-size: 11.5px !important; }
	.ph-topbar__whatsapp svg{ width: 16px !important; height: 16px !important; }
	.ph-header-main__inner{ min-height: 70px !important; }

	/* Entrance motion is intentionally short and subtle to support conversion, not distract. */
	.js .ph-mobile-motion{
		opacity: 0;
		transform: translate3d(0, 16px, 0) scale(.992);
		transition: opacity .48s ease, transform .58s cubic-bezier(.2,.75,.25,1);
		will-change: opacity, transform;
	}
	.js .ph-mobile-motion.is-visible{
		opacity: 1;
		transform: translate3d(0,0,0) scale(1);
	}
	.ph-mobile-motion:nth-child(2){ transition-delay: 55ms; }
	.ph-mobile-motion:nth-child(3){ transition-delay: 90ms; }
	.ph-mobile-motion:nth-child(4){ transition-delay: 125ms; }

	/* Touch feedback gives mobile cards a premium physical response. */
	.ph-services-gallery__card:active,.ph-project-card:active,.ph-service-card-v3:active,.ph-service-review-card:active{
		transform: scale(.985);
	}
}

@media (max-width: 480px) {
	.ph-topbar__hours{ display: none !important; }
	.ph-topbar__inner{ justify-content: space-between !important; }
}

@media (prefers-reduced-motion: reduce) {
	.js .ph-mobile-motion{ opacity: 1 !important; transform: none !important; transition: none !important; }
}


/* v6.6 Mobile reveal: activated by IntersectionObserver only. */
@media (max-width: 767px) {
	.ph-mobile-reveal{
		opacity: 0;
		transform: translateY(18px) scale(.985);
		transition: opacity .58s cubic-bezier(.2,.7,.2,1), transform .58s cubic-bezier(.2,.7,.2,1);
		will-change: opacity, transform;
	}
	.ph-mobile-reveal.is-visible{
		opacity: 1;
		transform: none;
	}
	.ph-mobile-reveal[data-ph-reveal-delay="1"]{transition-delay:70ms}
	.ph-mobile-reveal[data-ph-reveal-delay="2"]{transition-delay:140ms}
	.ph-mobile-reveal[data-ph-reveal-delay="3"]{transition-delay:210ms}
}
@media (prefers-reduced-motion: reduce) {
	.ph-mobile-reveal,.ph-mobile-reveal.is-visible{
		opacity: 1!important;
		transform: none!important;
		transition: none!important;
	}
}


/* ==========================================================================
   Precision Home 8.0 RC1 — final mobile shell
   Keeps the phone header visually consistent with desktop branding while
   protecting the first viewport and touch targets.
   ========================================================================== */
@media (max-width: 767px) {
	.ph-site-header .ph-header-main{
		background: rgba(255,255,255,.97);
		border-bottom: 1px solid rgba(142,59,67,.10);
		backdrop-filter: blur(12px);
	}
	.ph-site-header .ph-header-main__inner{
		min-height: 70px;
		gap: 10px;
	}
	.ph-site-header .ph-branding{
		display: flex;
		align-items: center;
		min-width: 0;
		flex: 1;
	}
	.ph-site-header .ph-logo .custom-logo{
		width: auto;
		max-width: 158px;
		max-height: 52px;
		object-fit: contain;
	}
	.ph-site-header .ph-header-actions{
		display: flex;
		align-items: center;
		gap: 8px;
		flex: 0 0 auto;
	}
	.ph-site-header .ph-mobile-menu-toggle{
		border: 1px solid rgba(212,175,55,.32);
		background: linear-gradient(145deg,#15171b,#2c2024);
		box-shadow: 0 8px 20px rgba(21,23,27,.10);
	}
	.ph-site-header.is-sticky .ph-header-main__inner{
		min-height: 64px;
	}
	.ph-site-header.is-sticky .ph-logo .custom-logo{
		max-height: 47px;
	}
}


/* Precision Home 8.0 RC3 — mobile rendering safeguards */
@media (max-width: 767px) {
	.ph-primary-navigation,.ph-mobile-drawer{
		contain: layout paint;
		will-change: transform;
	}
	@supports not (backdrop-filter: blur(1px)) {
		.ph-site-header .ph-header-main{
			background: #fff;
		}
	}
}
@media (prefers-reduced-motion: reduce) {
	.ph-primary-navigation,.ph-mobile-drawer{
		will-change: auto;
	}
}


/* RC4 touch polish: hover transforms must not stick after tapping. */
@media (hover:none) and (pointer:coarse){
	.ph-mobile-menu-toggle:hover,.ph-mobile-drawer__close:hover{
		transform:none !important;
	}
}
