/**
 * FFF Site Core - Policy & Information Presentation (B-45)
 *
 * Scoped, presentation-only CSS. Changes no content record, no _elementor_data,
 * no policy text, no heading levels and no page dates.
 *
 * Covers:
 *   1. Privacy Policy (3)              - mobile horizontal overflow from the 13 table
 *   2. Accessibility Statement (359)   - missing content container
 *   3. Policy / information pages      - shared gutters, reading measure, heading scale
 *   4. Book An Appointment (314)       - visual normalisation to current FFF language
 *   5. In-content button consistency   - 8px radius
 *
 * Brand: black #000000 / gold #fbbe28 / white #ffffff / Montserrat headings / Inter body
 */

/* =====================================================================
 * 1. PRIVACY POLICY (3) - section 13 table mobile overflow
 *
 * The table carries pasted chat-interface classes (w-fit,
 * min-w-(--thread-content-width), _tableWrapper_1rjym_13) that resolve to
 * nothing on this site, so the table sizes to its content and pushes the whole
 * page sideways on a phone. The wrapper becomes the scroll container so the
 * page itself never scrolls horizontally and every column stays reachable.
 * Desktop is unaffected: the table still fits its container and does not scroll.
 * ================================================================== */

body.page-id-3 [class*="_tableContainer_"],
body.page-id-3 [class*="_tableWrapper_"] {
	display: block !important;
	width: auto !important;
	max-width: 100% !important;
	overflow-x: auto !important;
	-webkit-overflow-scrolling: touch;
}

body.page-id-3 [class*="_tableWrapper_"] {
	border: 1px solid #d8d8d8;
	border-radius: 8px;
	margin: 16px 0 24px;
}

body.page-id-3 [class*="_tableWrapper_"] > table {
	width: auto !important;
	min-width: 100% !important;
	max-width: none !important;
	margin: 0 !important;
	border-collapse: collapse;
}

body.page-id-3 [class*="_tableWrapper_"] > table th,
body.page-id-3 [class*="_tableWrapper_"] > table td {
	padding: 10px 12px;
	border-bottom: 1px solid #e6e6e6;
	vertical-align: top;
	font-size: 15px;
	line-height: 1.5;
}

body.page-id-3 [class*="_tableWrapper_"] > table th {
	text-align: left;
	font-weight: 700;
	background: #f6f6f6;
}

body.page-id-3 [class*="_tableWrapper_"] > table tr:last-child td {
	border-bottom: 0;
}

/* Belt and braces: any other table on a policy page also stays inside the page. */
body.page-id-3 .elementor-widget-text-editor .elementor-widget-container,
body.page-id-34 .elementor-widget-text-editor .elementor-widget-container,
body.page-id-336 .elementor-widget-text-editor .elementor-widget-container,
body.page-id-128644 .elementor-widget-text-editor .elementor-widget-container {
	max-width: 100%;
}

/* =====================================================================
 * 2. ACCESSIBILITY STATEMENT (359) - content container
 *
 * This page is classic content rendered by Hello Elementor's
 * template-parts/single.php, which applies no width constraint, so text ran
 * edge to edge at every width. Give it the same container the other
 * information pages use.
 * ================================================================== */

body.page-id-359 .site-main {
	max-width: 1200px;
	margin-left: auto;
	margin-right: auto;
	padding-top: 40px;
	padding-bottom: 56px;
}

body.page-id-359 .page-header,
body.page-id-359 .page-content {
	padding-left: 20px;
	padding-right: 20px;
}

body.page-id-359 .entry-title {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: clamp(30px, 6vw, 48px);
	line-height: 1.15;
	margin: 0 0 20px;
	color: #000000;
}

body.page-id-359 .page-content h2 {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: clamp(22px, 3.4vw, 30px);
	line-height: 1.25;
	margin: 34px 0 12px;
	color: #000000;
}

body.page-id-359 .page-content h3 {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 700;
	font-size: clamp(19px, 2.4vw, 22px);
	margin: 24px 0 10px;
	color: #000000;
}

body.page-id-359 .page-content p,
body.page-id-359 .page-content ul,
body.page-id-359 .page-content ol {
	font-size: 17px;
	line-height: 1.65;
	max-width: 75ch;
}

body.page-id-359 .page-content li {
	margin-bottom: 8px;
}

body.page-id-359 .page-content ul,
body.page-id-359 .page-content ol {
	padding-left: 22px;
}

@media (min-width: 1024px) {
	body.page-id-359 .page-header,
	body.page-id-359 .page-content {
		padding-left: 40px;
		padding-right: 40px;
	}
}

/* =====================================================================
 * 3. POLICY / INFORMATION PAGES - shared reading measure and heading scale
 *
 * Pages: Privacy (3) / Refund & Returns (34) / Terms (336) /
 *        Shipping & FFL Information (128644) / Accessibility (359)
 *
 * Presentation only. Heading LEVELS in content are untouched; only their
 * visual scale is harmonised.
 * ================================================================== */

body.page-id-3 .elementor-widget-text-editor p,
body.page-id-3 .elementor-widget-text-editor ul,
body.page-id-3 .elementor-widget-text-editor ol,
body.page-id-34 .elementor-widget-text-editor p,
body.page-id-34 .elementor-widget-text-editor ul,
body.page-id-34 .elementor-widget-text-editor ol,
body.page-id-336 .elementor-widget-text-editor p,
body.page-id-336 .elementor-widget-text-editor ul,
body.page-id-336 .elementor-widget-text-editor ol,
body.page-id-128644 .elementor-widget-text-editor p,
body.page-id-128644 .elementor-widget-text-editor ul,
body.page-id-128644 .elementor-widget-text-editor ol {
	max-width: 75ch;
}

/* Tables must never inherit the prose measure. */
body.page-id-3 .elementor-widget-text-editor table,
body.page-id-34 .elementor-widget-text-editor table,
body.page-id-336 .elementor-widget-text-editor table,
body.page-id-128644 .elementor-widget-text-editor table {
	max-width: none;
}

/* Consistent list rhythm across the five pages. */
body.page-id-3 .elementor-widget-text-editor li,
body.page-id-34 .elementor-widget-text-editor li,
body.page-id-336 .elementor-widget-text-editor li,
body.page-id-128644 .elementor-widget-text-editor li {
	margin-bottom: 8px;
}

body.page-id-3 .elementor-widget-text-editor li > p,
body.page-id-34 .elementor-widget-text-editor li > p,
body.page-id-336 .elementor-widget-text-editor li > p,
body.page-id-128644 .elementor-widget-text-editor li > p {
	margin: 0;
}

/* H1 harmonisation - Refund & Returns rendered at 36px against a 48px norm. */
body.page-id-34 .elementor-widget-heading h1.elementor-heading-title,
body.page-id-3 .elementor-widget-heading h1.elementor-heading-title,
body.page-id-336 .elementor-widget-heading h1.elementor-heading-title,
body.page-id-128644 .elementor-widget-heading h1.elementor-heading-title {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: clamp(30px, 6vw, 48px);
	line-height: 1.15;
}

/* Section-heading visual scale. Privacy renders sections as H4 at 19px and
 * Refund at 22px against a 28-36px norm. Levels are not changed. */
body.page-id-3 .elementor-widget-text-editor h4,
body.page-id-34 .elementor-widget-text-editor h4 {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: clamp(21px, 3vw, 28px);
	line-height: 1.25;
	margin: 34px 0 12px;
	color: #000000;
}

body.page-id-3 .elementor-widget-text-editor h5,
body.page-id-34 .elementor-widget-text-editor h5 {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 700;
	font-size: clamp(18px, 2.2vw, 21px);
	line-height: 1.3;
	margin: 24px 0 10px;
	color: #000000;
}

/* Nothing on a policy page may push the page sideways. */
body.page-id-3 .elementor-widget-text-editor img,
body.page-id-34 .elementor-widget-text-editor img,
body.page-id-336 .elementor-widget-text-editor img,
body.page-id-128644 .elementor-widget-text-editor img,
body.page-id-359 .page-content img {
	max-width: 100%;
	height: auto;
}

/* =====================================================================
 * 4. BOOK AN APPOINTMENT (314) - visual normalisation
 *
 * B-44 measured H1 36px against the 48px site standard, H2 at weight 400
 * against 800, and a 71px-tall CTA against a 47-51px norm. The Google CTA is
 * replaced by the FFF appointment request form in B-45; these rules bring the
 * remaining page furniture onto the current FFF visual language.
 * ================================================================== */

body.page-id-314 .elementor-widget-heading h1.elementor-heading-title {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: clamp(30px, 6vw, 48px);
	line-height: 1.15;
	color: #000000;
}

body.page-id-314 .elementor-widget-heading h2.elementor-heading-title,
body.page-id-314 .elementor-widget-text-editor h2 {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: clamp(24px, 4vw, 36px);
	line-height: 1.2;
	color: #000000;
}

body.page-id-314 .elementor-widget-text-editor h3,
body.page-id-314 .elementor-widget-heading h3.elementor-heading-title {
	font-family: Montserrat, Helvetica, Arial, sans-serif;
	font-weight: 800;
	font-size: clamp(20px, 3vw, 26px);
	line-height: 1.25;
	color: #000000;
}

body.page-id-314 .elementor-widget-text-editor p,
body.page-id-314 .elementor-widget-text-editor ul,
body.page-id-314 .elementor-widget-text-editor ol {
	max-width: 75ch;
}

body.page-id-314 .elementor-widget-text-editor li {
	margin-bottom: 8px;
}

/* The appointment form owns its own responsive behaviour; make sure no
 * ancestor clips or stretches it. */
body.page-id-314 .fff-ar {
	max-width: 780px;
	margin-left: auto;
	margin-right: auto;
}

body.page-id-314 .elementor-widget-shortcode,
body.page-id-314 .elementor-widget-shortcode .elementor-widget-container {
	max-width: 100%;
	overflow: visible;
}

/* =====================================================================
 * 5. IN-CONTENT BUTTON CONSISTENCY - single 8px radius
 *
 * Scoped to the Elementor button widget only. WooCommerce controls, form
 * submits and header/footer chrome are deliberately not touched.
 * ================================================================== */

.elementor-widget-button .elementor-button {
	border-radius: 8px;
}

/* No in-content CTA may clip its own label or break the line box on a phone. */
.elementor-widget-button .elementor-button .elementor-button-text {
	white-space: normal;
	overflow-wrap: anywhere;
}

/* =====================================================================
 * 6. REDUCED MOTION
 * ================================================================== */

@media (prefers-reduced-motion: reduce) {
	body.page-id-3 [class*="_tableWrapper_"],
	body.page-id-359 .page-content {
		scroll-behavior: auto;
	}
}
