/* ---------------------------------------------------------------------------
   Deansgate Haus - touch target and mobile legibility pass (mobile audit P2-P9)

   Two techniques are used deliberately:

   1. HIT-AREA EXPANSION (::after overlay, or padding cancelled by an equal
      negative margin). The control looks identical; only the tappable area
      grows. Used wherever enlarging the visible element would change the
      design - icons, close buttons, headings inside cards.
   2. REAL SIZING (min-height / padding). Used where the control is already a
      button and growing it is the intended outcome - form submits, the mobile
      drawer, the breathing pace buttons.

   44px is the WCAG 2.5.5 / Apple HIG minimum.
--------------------------------------------------------------------------- */

/* Shared hit-area helper geometry. */
.dh-hit { position: relative; }
.dh-hit::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 44px;
	height: 44px;
}

/* --- P2  Elementor popup close button (was 15x15) ----------------------- */
/* The glyph keeps its size and position; only the hit area grows.
   NOTE: do NOT set position:relative here. Elementor positions this button
   absolutely; overriding it drops the button into normal flow, where it
   becomes a full-width strip across the top of the popup. An absolutely
   positioned element is already a containing block for its own ::after. */
.dialog-widget .dialog-close-button::after,
.elementor-popup-modal .dialog-close-button::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 44px;
	height: 44px;
}

/* --- P3  Teacher popup triggers (was 35x35) ----------------------------- */
.elementor-widget-icon .elementor-icon,
a.elementor-icon {
	position: relative;
}
.elementor-widget-icon .elementor-icon::after,
a.elementor-icon::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 44px;
	height: 44px;
}

/* --- P4  Class card links (was 27px tall) ------------------------------- */
/* Padding grows the hit box; the equal negative margin cancels the layout
   shift, so card spacing is unchanged. */
.elementor-widget-heading .elementor-heading-title > a {
	display: inline-block;
	padding: 9px 0;
	margin: -9px 0;
}

/* --- P7  Homepage small text, mobile only ------------------------------- */
/* Desktop typography is untouched; these only lift sub-12px text on phones. */
@media (max-width: 767px) {
	.dh-hero__from,
	.dh-social__eyebrow,
	.dh-footer__label,
	.dh-eyebrow,
	.dh-offer__label,
	.dh-offer__link {
		font-size: 12px;
	}
	.dh-review__role,
	.dh-stat__label,
	.dh-footer__tagline {
		font-size: 12px;
	}
}

/* --- P7  Review pager dots (were 6px tall) ------------------------------ */
.dh-reviews__dot {
	position: relative;
	height: 10px;
	width: 10px;
}
.dh-reviews__dot.is-active {
	width: 28px;
}
.dh-reviews__dot::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 44px;
	height: 44px;
}

/* --- P8  Footer and social ---------------------------------------------- */
/* Icons keep their drawn size; hit area only. */
.dh-footer__social a,
.dh-social__row a {
	position: relative;
}
.dh-footer__social a::after,
.dh-social__row a::after {
	content: "";
	position: absolute;
	top: 50%;
	left: 50%;
	transform: translate(-50%, -50%);
	width: 44px;
	height: 44px;
}
/* Text links: padding in, margin out. */
.dh-footer a.privacy-policy-link,
.dh-footer__text a,
a.privacy-policy-link {
	display: inline-block;
	padding: 13px 0;
	margin: -13px 0;
}
/* Newsletter submit is a real button, so grow it properly. */
.dh-footer input[type="submit"],
.dh-footer button[type="submit"],
.dh-newsletter input[type="submit"],
input.submit {
	min-height: 44px;
}

/* --- P9  Breathing guide pace buttons (were 31px tall) ------------------ */
/* The popup ships its own inline <style> after this file, so these carry
   extra specificity rather than !important. */
.dhbr .dhbr__paces .dhbr__pace,
.dhbr .dhbr__pace {
	min-height: 44px;
	padding-top: 8px;
	padding-bottom: 8px;
}
.dhbr .dhbr__stop,
.dhbr button {
	min-height: 44px;
}

/* --- P4/P8 catch-all for small in-content text links -------------------- */
/* Deliberately narrow: only links that are on their own line in body copy. */
@media (max-width: 1024px) {
	.dh-schedule__link,
	.dh-offer__link {
		display: inline-block;
		padding: 12px 0;
		margin: -12px 0;
	}
}
