/**
 * Fixed pages — shared shell (SP first).
 * Pattern-specific sections remain in components.css.
 */

.site-main--page {
	padding-block: 0 2.5rem;
	background-color: var(--color-bg);
}

.site-main--page:not(.site-main--article) .alignfull {
	width: 100%;
	max-width: none;
	margin-left: calc(50% - 50vw);
	margin-right: calc(50% - 50vw);
}

/* Page title band（Figma 214:4483） */

.c-page-heading {
	width: 100%;
	background-color: #ffffff;
}

.c-page-heading__inner {
	max-width: 50rem;
	margin-inline: auto;
	padding: 3.75rem 1.5rem;
	text-align: center;
}

.c-page-heading__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.5rem, 4.5vw, 2rem);
	font-weight: 700;
	line-height: 1.25;
	color: #534741;
}

/* Pattern 内ヒーロー（共通 page-heading に任せる） */

.site-main--page:not(.p-page--contact):not(.p-page--contact-thanks):not(.p-page--company) .p-page-hero,
.site-main--page:not(.p-page--contact):not(.p-page--contact-thanks):not(.p-page--company) [class*="p-section-"][class*="-hero"]:not(.p-section-thanks-hero) {
	display: none;
}

/* 固定ページ FV 画像：角丸なし（Figma） */

.site-main--page .p-section-cleaning-fv__figure,
.site-main--page .p-section-handyman-fv__figure,
.site-main--page .p-section-price-fv__figure,
.site-main--page .p-section-area-fv__figure,
.site-main--page .p-section-faq-fv__figure,
.site-main--page .p-section-cleaning-fv__figure img,
.site-main--page .p-section-handyman-fv__figure img,
.site-main--page .p-section-price-fv__figure img,
.site-main--page .p-section-area-fv__figure img,
.site-main--page .p-section-faq-fv__figure img {
	border-radius: 0;
}

/* Pattern roots: centered content column */

.site-main--page .p-pattern-flow,
.site-main--page .p-pattern-thanks {
	width: min(100% - 2.5rem, 1100px);
	max-width: 100%;
	margin-inline: auto;
	padding-inline: 0;
	box-sizing: border-box;
}

.site-main--page .p-page-content {
	width: min(100% - 2.5rem, 22.125rem);
	max-width: 100%;
	margin-inline: auto;
	padding-block: 1.5rem 2.5rem;
	box-sizing: border-box;
}

@media (min-width: 768px) {
	.site-main--page .p-page-content {
		max-width: 100%;
	}
}

/* In-page section rhythm */

.site-main--page .p-pattern-flow > .wp-block-group:not([class*="hero"]):not([class*="cta"]) {
	padding-inline: 0.25rem;
}

/* Contact / company full-bleed patterns */

.site-main--page .p-pattern-contact,
.site-main--page .p-pattern-company {
	width: 100%;
	max-width: none;
	margin-inline: 0;
}

/* ----- Contact page (Figma contact-sp `177:3566` / contact-pc `214:6944`) ----- */

.site-main--page.p-page--contact {
	padding-block: 0 0;
	background-color: var(--color-white);
}

.site-main--page.p-page--contact .p-page__content {
	width: 100%;
	max-width: none;
	padding-block: 0;
}

.site-main--page.p-page--contact .p-pattern-contact {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.site-main--page.p-page--contact .p-section-contact-heading {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding: 3.75rem 1.5rem;
	background-color: var(--color-white);
}

.site-main--page.p-page--contact .p-section-contact-heading__title {
	margin: 0;
	font-family: var(--font-heading);
	font-size: clamp(1.375rem, 5vw, 1.5rem);
	font-weight: 800;
	line-height: 1.25;
	letter-spacing: 0.02em;
	color: var(--color-text-sub);
	text-align: center;
}

.site-main--page.p-page--contact .p-section-contact-shell {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding: 2.5rem 1.5rem 5rem;
	background-color: var(--color-bg);
}

.site-main--page.p-page--contact .p-pattern-contact__content {
	width: 100%;
	max-width: 22.125rem;
	margin-inline: auto;
	padding-bottom: 0;
	box-sizing: border-box;
}

.site-main--page.p-page--contact .p-contact-lead {
	margin: 0 0 1.5rem;
}

.site-main--page.p-page--contact .p-contact-lead p {
	margin: 0 0 0.75rem;
	font-family: var(--font-heading);
	font-size: 1.125rem;
	font-weight: 500;
	line-height: 1.5;
	color: var(--color-text-sub);
}

.site-main--page.p-page--contact .p-contact-lead p:last-child {
	margin-bottom: 0;
}

.site-main--page.p-page--contact .p-contact-form-intro {
	margin: 0 0 1.5rem;
	font-size: 0.875rem;
	line-height: 1.7;
	color: var(--color-text-muted);
}

.site-main--page.p-page--contact .c-contact-form-shell {
	max-width: 100%;
	margin-inline: auto;
	overflow-x: hidden;
	padding: 0;
	border: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

/* Legacy class names (pre-11.23 DB) */
.site-main--page.p-page--contact .p-contact-hero,
.site-main--page.p-page--contact .p-contact-title-band {
	background-color: var(--color-white);
}

.site-main--page.p-page--contact .p-contact-hero__title,
.site-main--page.p-page--contact .p-contact-title-band__title {
	margin: 0;
	padding: 3.75rem 1.5rem;
	font-family: var(--font-heading);
	font-size: clamp(1.375rem, 5vw, 1.5rem);
	font-weight: 800;
	line-height: 1.25;
	color: var(--color-text-sub);
	text-align: center;
}

@media (min-width: 768px) {
	.site-main--page.p-page--contact .p-pattern-contact__content {
		max-width: 36rem;
	}
}

@media (min-width: 1024px) {
	.site-main--page.p-page--contact .p-pattern-contact__content {
		max-width: 40rem;
	}
}

/* ----- Contact thanks (軽微調整のみ) ----- */

.site-main--page.p-page--contact-thanks {
	padding-block: 2rem 2.5rem;
}

@media (min-width: 768px) {
	.site-main--page.p-page--contact-thanks .p-pattern-thanks {
		width: min(100% - 2.5rem, 40rem);
	}
}

/* Thanks page */

.p-pattern-thanks {
	width: min(100% - 2.5rem, 720px);
	max-width: 100%;
	margin-inline: auto;
	padding-block: 2rem 3rem;
	text-align: center;
}

.p-section-thanks-hero {
	padding: 2rem 1.25rem;
	border-radius: var(--radius-lg);
	background: linear-gradient(165deg, var(--color-bg-soft) 0%, var(--color-bg-pink) 100%);
	border: 1px solid rgba(240, 138, 107, 0.15);
}

.p-section-thanks-hero__icon {
	margin: 0 auto 0.75rem;
	width: 3.5rem;
	height: 3.5rem;
	display: flex;
	align-items: center;
	justify-content: center;
	border-radius: 50%;
	background: var(--color-primary);
	color: var(--color-white);
	font-size: 1.5rem;
	font-weight: 800;
	line-height: 1;
}

.p-pattern-thanks .wp-block-post-title {
	margin: 0 0 0.75rem;
	font-family: var(--font-heading);
	font-size: clamp(1.25rem, 4vw, 1.625rem);
	font-weight: 800;
	line-height: 1.35;
}

.p-section-thanks-hero__lead {
	margin: 0 auto 1rem;
	max-width: 32rem;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--color-text-muted);
}

.p-section-thanks-actions {
	display: flex;
	flex-direction: column;
	gap: 0.65rem;
	align-items: center;
	margin-top: 1.5rem;
}

.p-section-thanks-actions .wp-block-buttons {
	width: 100%;
	max-width: 22rem;
}

.p-section-thanks-actions .wp-block-button {
	width: 100%;
}

.p-section-thanks-actions .wp-block-button__link {
	width: 100%;
	text-align: center;
}

.p-section-thanks-phone {
	margin: 1.25rem 0 0;
	padding: 1rem 1.1rem;
	border-radius: var(--radius-lg);
	background: var(--color-white);
	border: 1px solid var(--color-border);
	font-size: 0.875rem;
	line-height: 1.65;
	color: var(--color-text-muted);
}

.p-section-thanks-phone strong {
	display: block;
	margin-bottom: 0.35rem;
	font-size: 1rem;
	color: var(--color-ink);
}

.p-section-thanks-phone a {
	font-weight: 700;
	color: var(--color-primary-dark);
}

/* Default fixed page — FAQ page-heading + single-post body (Step 13.2c-DefaultPage-2) */

.site-main--article {
	padding-block: 0;
	background-color: var(--color-bg);
}

.site-main--article .p-single-post {
	margin: 0;
}

.site-main--article .p-single-post__inner {
	gap: 0;
}

/* Legal patterns inside article layout (privacy / commercial-transaction) */

.site-main--article .p-pattern-legal {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
	background: #ffffff;
	background-color: #ffffff;
}

.site-main--article .p-pattern-legal__content,
.site-main--article .p-pattern-legal .l-container--narrow {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.site-main--article .p-section-legal-hero .wp-block-post-title {
	display: none;
}

.site-main--article .p-section-legal-hero {
	padding-top: 0;
	padding-inline: 0;
}

.p-pattern-legal .p-section-legal-hero__lead {
	max-width: 40rem;
	margin-inline: auto;
	font-size: 0.9375rem;
	line-height: 1.75;
	color: var(--color-text-muted);
}

.p-pattern-legal .c-legal-notice {
	margin-bottom: 1.5rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-lg);
}

.p-pattern-legal .c-legal-table th {
	width: 38%;
}

.p-pattern-legal .c-legal-updated,
.p-pattern-legal .c-legal-note {
	margin-top: 1.5rem;
}

/* Default article pages — white content backgrounds (LP / company 等は対象外) */

.site-main--article .p-single-post__content .has-background-alt-background-color,
.site-main--article .p-single-post__content .has-surface-background-color,
.site-main--article .p-single-post__content .has-background-background-color,
.site-main--article .p-single-post__content .has-bg-background-color,
.site-main--article .p-single-post__content .has-bg-soft-background-color,
.site-main--article .p-single-post__content .has-bg-pink-background-color,
.site-main--article .p-single-post__content .p-pattern-legal,
.site-main--article .p-single-post__content .p-pattern-legal.has-background,
.site-main--article .p-single-post__content .p-pattern-legal.has-background-alt-background-color,
.site-main--article .p-single-post__content .c-legal-notice,
.site-main--article .p-single-post__content .c-legal-notice.has-background,
.site-main--article .p-single-post__content .c-legal-notice.has-surface-background-color {
	background: #ffffff !important;
	background-color: #ffffff !important;
}

/* Default article pages — legal content: no table fill colors (Step 13.2c-LegalPage-1) */

.site-main--article .p-single-post__content .wp-block-table,
.site-main--article .p-single-post__content .c-company-info-scroll {
	overflow-x: auto;
	-webkit-overflow-scrolling: touch;
	max-width: 100%;
}

.site-main--article .p-single-post__content table {
	width: 100%;
	margin: 1rem 0;
	border-collapse: collapse;
	font-size: 0.875rem;
}

.site-main--article .p-single-post__content th,
.site-main--article .p-single-post__content td {
	padding: 0.55rem 0.65rem;
	border: 1px solid var(--color-border);
	text-align: left;
	vertical-align: top;
	word-break: break-word;
	background: transparent !important;
	background-color: transparent !important;
}

.site-main--article .p-single-post__content thead th,
.site-main--article .p-single-post__content tbody th {
	font-weight: 700;
	color: var(--color-ink);
}

.site-main--article .p-single-post__content tbody tr,
.site-main--article .p-single-post__content tbody tr:nth-child(odd),
.site-main--article .p-single-post__content tbody tr:nth-child(even),
.site-main--article .p-single-post__content .wp-block-table.is-style-stripes tbody tr:nth-child(odd) {
	background: transparent !important;
	background-color: transparent !important;
}

.site-main--article .p-single-post__content .c-company-info-scroll {
	margin: 0 0 1.5rem;
	border-radius: 0;
	box-shadow: none;
	background: transparent;
}

.site-main--article .p-single-post__content .wp-block-table.c-company-info-table,
.site-main--article .p-single-post__content .c-company-info-table {
	overflow: visible;
	border: none;
	border-radius: 0;
	background: transparent;
	box-shadow: none;
}

.site-main--article .p-single-post__content .wp-block-table.c-company-info-table table,
.site-main--article .p-single-post__content .c-company-info-table table {
	min-width: 16rem;
	border: 1px solid var(--color-border);
	border-radius: var(--radius-sm);
	background: transparent !important;
}

.site-main--article .p-single-post__content .wp-block-table.c-company-info-table th,
.site-main--article .p-single-post__content .wp-block-table.c-company-info-table td,
.site-main--article .p-single-post__content .c-company-info-table th,
.site-main--article .p-single-post__content .c-company-info-table td {
	border: 1px solid var(--color-border);
	background: transparent !important;
	background-color: transparent !important;
}

.site-main--article .p-single-post__content .c-legal-table th {
	width: 38%;
}

@media (max-width: 599.98px) {
	.site-main--article .p-single-post__content .wp-block-table.c-company-info-table th,
	.site-main--article .p-single-post__content .wp-block-table.c-company-info-table td {
		background: transparent !important;
		background-color: transparent !important;
	}
}

/* ----- Price page (Figma price-sp / pc) ----- */

.site-main--page.p-page--price .p-pattern-price {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.site-main--page.p-page--price .p-page__content {
	width: 100%;
	max-width: none;
	padding-block: 0;
}

.site-main--page.p-page--price .p-section-price-hero {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding-inline: 1.5rem;
}

.site-main--page.p-page--price .p-section-price-shell,
.site-main--page.p-page--price .p-section-price-faq {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

/* ----- Area page (Figma area-sp / pc) ----- */

.site-main--page.p-page--area .p-pattern-area {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.site-main--page.p-page--area .p-page__content {
	width: 100%;
	max-width: none;
	padding-block: 0;
}

.site-main--page.p-page--area .p-section-area-hero {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding-inline: 1.5rem;
}

.site-main--page.p-page--area .p-section-area-shell,
.site-main--page.p-page--area .p-section-area-faq {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

/* ----- FAQ page (Figma faq-sp / pc) ----- */

.site-main--page.p-page--faq .p-pattern-faq {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.site-main--page.p-page--faq .p-page__content {
	width: 100%;
	max-width: none;
	padding-block: 0;
}

.site-main--page.p-page--faq .p-section-faq-hero {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding-inline: 1.5rem;
}

.site-main--page.p-page--faq .p-section-faq-shell {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

@media (min-width: 1024px) {
	.site-main--page.p-page--faq .p-section-faq-shell > .wp-block-group {
		max-width: 50rem;
	}
}

/* ----- Cleaning page (Figma service-cleaning-sp / pc) ----- */

.site-main--page.p-page--cleaning .p-pattern-cleaning {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.site-main--page.p-page--cleaning .p-page__content {
	width: 100%;
	max-width: none;
	padding-block: 0;
}

.site-main--page.p-page--cleaning .p-section-cleaning-hero {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding-inline: 1.5rem;
}

.site-main--page.p-page--cleaning .p-section-cleaning-shell {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

.site-main--page.p-page--cleaning .p-section-cleaning-flow,
.site-main--page.p-page--cleaning .p-section-cleaning-reason,
.site-main--page.p-page--cleaning .p-section-cleaning-faq {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

/* ----- Handyman page (Figma service-handyman-sp / pc) ----- */

.site-main--page.p-page--handyman .p-pattern-handyman {
	width: 100%;
	max-width: none;
	margin-inline: 0;
	padding-inline: 0;
}

.site-main--page.p-page--handyman .p-page__content {
	width: 100%;
	max-width: none;
	padding-block: 0;
}

.site-main--page.p-page--handyman .p-section-handyman-hero {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
	padding-inline: 1.5rem;
}

.site-main--page.p-page--handyman .p-section-handyman-shell {
	width: 100%;
	max-width: none;
	margin-inline: calc(50% - 50vw);
}

/* Handyman FAQ full-bleed: .p-section-page-faq on section */

@media (min-width: 1024px) {
	.site-main--page.p-page--handyman .p-section-handyman-shell > .wp-block-group {
		max-width: 50rem;
	}
}

@media (min-width: 768px) {
	.site-main--page {
		padding-block: 0 3.5rem;
	}

	.p-section-thanks-actions {
		flex-direction: row;
		flex-wrap: wrap;
		justify-content: center;
		max-width: none;
	}

	.p-section-thanks-actions .wp-block-buttons {
		width: auto;
		max-width: none;
	}

	.p-section-thanks-actions .wp-block-button {
		width: auto;
	}
}
