/* =========================================================
   Sensual Moments — Policy/legal pages: Privacy Policy,
   Returns Policy, Shipping Info, Sizing Guide, Terms of
   Service. All share the real .sm-policy-* system.
   ========================================================= */

.sm-policy-page {
	background: var(--sm-cream) !important;
	color: var(--sm-text) !important;
}
.sm-policy-page::before { display: none; }

.sm-policy-hero {
	padding: clamp(72px, 8vw, 100px) 64px clamp(42px, 5vw, 60px) !important;
	text-align: left;
}
.sm-policy-shell { width: 100%; max-width: 900px; margin-left: auto !important; margin-right: auto !important; text-align: center; }
.sm-policy-eyebrow {
	display: inline-flex;
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--sm-primary) !important;
	font-family: 'Jost', sans-serif;
	font-size: 12px;
	font-weight: 600;
	letter-spacing: 3px;
	text-transform: uppercase;
}
.sm-policy-title {
	max-width: 700px;
	margin: 0 auto 24px !important;
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: clamp(36px, 4.5vw, 52px) !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	line-height: 1.15 !important;
	color: var(--sm-deep) !important;
}
.sm-policy-lead {
	max-width: 700px;
	margin: 0 auto 18px !important;
	font-family: 'Jost', sans-serif;
	font-size: 16px !important;
	line-height: 1.7 !important;
	color: var(--sm-text) !important;
}
.sm-policy-date {
	padding: 0;
	border: 0;
	background: transparent;
	color: var(--sm-muted) !important;
	font-family: 'Jost', sans-serif;
	font-size: 13px !important;
	font-weight: 400 !important;
	font-style: italic;
}

.sm-policy-summary { padding: 0 64px clamp(44px, 5vw, 70px) !important; }
/* Real bug: .sm-policy-summary and .sm-policy-document-section are both
   wp-block-groups, so Gutenberg wraps their content in its own
   inner-container with a default 40px top+bottom padding - stacking on
   top of the explicit padding above and .sm-policy-document's own
   clamp(50,5vw,70) top padding. That was the same fix already made for
   Sizing Guide alone (page-id-22715) below, but this is really a bug in
   the shared .sm-policy-* system, hitting every page that reuses it
   (Shipping Info, Returns Policy, Privacy Policy, Terms of Service too)
   - fixed here at the component level instead. */
.sm-policy-summary .is-layout-constrained,
.sm-policy-summary .is-layout-flow,
.sm-policy-document-section .is-layout-constrained,
.sm-policy-document-section .is-layout-flow {
	padding-top: 0 !important;
	padding-bottom: 0 !important;
}
.sm-policy-summary-grid { max-width: 1400px; margin: 0 auto; display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)); gap: 20px !important; }
.sm-policy-summary-card {
	padding: 30px !important;
	border: 1px solid var(--sm-border);
	border-radius: 0;
	background: var(--sm-white);
	box-shadow: none;
}
.sm-policy-summary-card h3 { color: var(--sm-deep) !important; font-family: 'Playfair Display', Georgia, serif !important; font-weight: 500 !important; font-size: 17px !important; }
.sm-policy-summary-card p { color: var(--sm-text) !important; font-family: 'Jost', sans-serif; font-size: 13px !important; }

.sm-policy-document-section { padding: 0 64px clamp(76px, 8vw, 100px) !important; background: var(--sm-champagne) !important; }
.sm-policy-document { max-width: 860px !important; margin: 0 auto !important; padding-top: clamp(50px, 5vw, 70px); }

/* Sizing Guide reuses .sm-policy-document (the legal-document prose
   wrapper, correctly capped at 860px for reading width) but its real
   content is wide data tables, not prose - the 860px cap crammed an
   8-column table into a box needing its own horizontal scrollbar.
   Real page ID (Sizing Guide = 22715), not guessed. */
body.page-id-22715 .sm-policy-document { max-width: 1400px !important; }
/* max-width only here - the padding:0 part of this fix is now handled
   for every .sm-policy-* page above, not just Sizing Guide. */
body.page-id-22715 .sm-policy-document-section .is-layout-constrained {
	max-width: none !important;
}
/* Real fix for the duplicate-H1 SEO issue: deleted the redundant
   custom H1 block from this page's content and renamed the real
   WordPress title to match ("Sensual Moments Sizing Guide") - .entry-
   title is now the one true H1. It already gets the full Playfair
   hero treatment from the Typography rules, just needs centering and
   tighter spacing to sit as part of the hero instead of a separate
   block with a gap above it. */
body.page-id-22715 .inside-article { padding-top: 0 !important; }
body.page-id-22715 .entry-title {
	text-align: center;
	max-width: 900px;
	margin: 0 auto 8px !important;
	padding-top: clamp(50px, 6vw, 76px);
}
body.page-id-22715 .sm-policy-hero { padding-top: 0 !important; }
.sm-policy-card {
	margin: 0 !important;
	padding: 0 !important;
	border: 0;
	border-radius: 0;
	background: transparent !important;
	box-shadow: none !important;
	color: var(--sm-text) !important;
}
.sm-policy-card h2 {
	margin: 56px 0 18px !important;
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 24px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	line-height: 1.2 !important;
	color: var(--sm-deep) !important;
}
.sm-policy-card:first-child h2 { margin-top: 0 !important; }
.sm-policy-card p, .sm-policy-card li {
	font-family: 'Jost', sans-serif;
	font-size: 15px !important;
	line-height: 1.75 !important;
	color: var(--sm-text) !important;
}
.sm-policy-card p { margin: 0 0 16px !important; }
.sm-policy-card ul { margin: 0 0 16px !important; padding-left: 20px !important; list-style: disc !important; }
.sm-policy-card li { padding-left: 0 !important; }
.sm-policy-card li::before { display: none; }
.sm-policy-card a { color: var(--sm-primary) !important; font-weight: 500 !important; }
.sm-policy-card strong { color: var(--sm-deep) !important; font-weight: 600 !important; }

.sm-policy-card--intro p { font-size: 17px !important; font-style: italic; color: var(--sm-text) !important; }
.sm-policy-card--intro h2 { text-shadow: none !important; }

.sm-policy-card--callout,
.sm-policy-card--delivery-note,
.sm-policy-card--measurement-note,
.sm-policy-card--fit-note,
.sm-policy-card--legal-note {
	margin: 40px 0 !important;
	padding: 28px 30px !important;
	border: 1px solid var(--sm-primary) !important;
	border-left: 3px solid var(--sm-primary) !important;
	border-radius: 0;
	background: var(--sm-white) !important;
	box-shadow: none !important;
	color: var(--sm-text) !important;
}
.sm-policy-card--callout h2, .sm-policy-card--callout p, .sm-policy-card--callout li, .sm-policy-card--callout strong, .sm-policy-card--callout a,
.sm-policy-card--delivery-note h2, .sm-policy-card--delivery-note p, .sm-policy-card--delivery-note li, .sm-policy-card--delivery-note strong, .sm-policy-card--delivery-note a,
.sm-policy-card--measurement-note h2, .sm-policy-card--measurement-note h3, .sm-policy-card--measurement-note p, .sm-policy-card--measurement-note li, .sm-policy-card--measurement-note strong, .sm-policy-card--measurement-note a,
.sm-policy-card--fit-note h2, .sm-policy-card--fit-note h3, .sm-policy-card--fit-note p, .sm-policy-card--fit-note li, .sm-policy-card--fit-note strong, .sm-policy-card--fit-note a,
.sm-policy-card--legal-note h2, .sm-policy-card--legal-note p, .sm-policy-card--legal-note li, .sm-policy-card--legal-note strong, .sm-policy-card--legal-note a {
	color: var(--sm-text) !important;
}
.sm-policy-card--callout li::before, .sm-policy-card--delivery-note li::before,
.sm-policy-card--measurement-note li::before, .sm-policy-card--fit-note li::before, .sm-policy-card--legal-note li::before {
	display: none;
}

.sm-policy-contact-card {
	border: 0 !important;
	background: transparent !important;
	color: var(--sm-text) !important;
	text-align: center;
	padding-top: 40px !important;
}
.sm-policy-contact-card h2, .sm-policy-contact-card p, .sm-policy-contact-card strong, .sm-policy-contact-card a {
	color: var(--sm-text) !important;
}
.sm-policy-contact-card .wp-block-button__link {
	background: var(--sm-primary) !important;
	color: #fff !important;
	border-radius: 999px !important;
}

/* Real Rank Math FAQ within Returns Policy */
.sm-policy-faq-card .rank-math-faq-item {
	margin: 0 !important;
	padding: 26px 0 !important;
	border: 0 !important;
	border-top: 1px solid var(--sm-border) !important;
	border-radius: 0 !important;
	background: transparent !important;
	box-shadow: none !important;
}
.sm-policy-faq-card .rank-math-question {
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 17px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	color: var(--sm-deep) !important;
}
.sm-policy-faq-card .rank-math-answer {
	font-family: 'Jost', sans-serif !important;
	font-size: 15px !important;
	color: var(--sm-text) !important;
}
.sm-policy-faq-card .rank-math-answer a { color: var(--sm-primary) !important; }

/* ---------------------------------------------------------
   Sizing Guide — real native <details> accordion tables
   --------------------------------------------------------- */

.sm-size-quick-grid { display: grid !important; grid-template-columns: repeat(3, minmax(0,1fr)) !important; gap: 20px !important; margin-top: 24px !important; }
.sm-size-quick-card { padding: 24px !important; border: 1px solid var(--sm-border) !important; border-radius: 0 !important; background: var(--sm-white) !important; box-shadow: none !important; }
.sm-size-quick-card h3, .sm-size-quick-card p { width: 100% !important; max-width: none !important; }
.sm-size-quick-card h3 { color: var(--sm-deep) !important; font-family: 'Playfair Display', Georgia, serif !important; font-weight: 500 !important; font-size: 17px !important; }
.sm-size-quick-card p { color: var(--sm-text) !important; font-family: 'Jost', sans-serif; font-size: 14px !important; }

.sm-size-accordion-group { display: grid !important; gap: 12px !important; margin-top: 24px !important; }
.sm-size-details {
	border: 1px solid var(--sm-border) !important;
	border-radius: 0 !important;
	background: var(--sm-white) !important;
	box-shadow: none !important;
}
.sm-size-details summary {
	padding: 20px 60px 20px 24px !important;
	font-family: 'Playfair Display', Georgia, serif !important;
	font-size: 20px !important;
	font-weight: 500 !important;
	letter-spacing: 0 !important;
	color: var(--sm-deep) !important;
}
.sm-size-details summary::after {
	background: var(--sm-primary) !important;
	border-radius: 999px !important;
	box-shadow: none !important;
	font-family: 'Jost', sans-serif !important;
}
.sm-size-details[open] summary { border-bottom: 1px solid var(--sm-border) !important; }
.sm-size-details > p { color: var(--sm-text) !important; font-family: 'Jost', sans-serif; }

.sm-size-table table {
	font-family: 'Jost', sans-serif !important;
	background: var(--sm-white) !important;
	border: 1px solid var(--sm-border) !important;
	border-radius: 0 !important;
}
.sm-size-table th, .sm-size-table td {
	border-bottom: 1px solid var(--sm-border) !important;
	border-right: 1px solid var(--sm-border) !important;
	color: var(--sm-text) !important;
}
.sm-size-table thead th {
	background: var(--sm-primary) !important;
	color: #fff !important;
}
.sm-size-table tbody th {
	background: var(--sm-blush) !important;
	color: var(--sm-deep) !important;
}
.sm-size-note {
	border-radius: 0 !important;
	background: var(--sm-blush) !important;
	border: 1px solid var(--sm-border) !important;
}
.sm-size-note p { color: var(--sm-text) !important; font-family: 'Jost', sans-serif; }

/* Homepage hero image treatment — keep grayscale/dim minimal,
   the design direction favours real colour over a heavy filter. */
.sm-home-hero .wp-block-cover__image-background,
.sm-home-hero img.wp-block-cover__image-background {
	filter: none !important;
}

@media (max-width: 900px) {
	.sm-policy-hero, .sm-policy-summary, .sm-policy-document-section { padding-left: 24px !important; padding-right: 24px !important; }
	.sm-policy-summary-grid { grid-template-columns: 1fr !important; }
	.sm-size-quick-grid { grid-template-columns: 1fr !important; }
}
