/* Shared by front end and editor. No page slug/body-class dependency. */
.okitama-section-block { margin: 0 !important; width: 100%; font-size: inherit; line-height: 1.8; }
.okitama-section-block *, .okitama-section-block *::before, .okitama-section-block *::after { box-sizing: border-box; }
.okitama-section-block .wp-block-columns { display: flex; flex-wrap: nowrap; }
.okitama-section-block .wp-block-column { flex: 1 1 0; min-width: 0; }
.okitama-block-cards .okitama-arrival-section__columns { display: grid; grid-template-columns: repeat(3, minmax(0, 1fr)); }
.okitama-block-cards .wp-block-buttons { display: flex; justify-content: center; }
.okitama-block-clinic__map { margin-top: clamp(30px, 4vw, 48px); }
.okitama-block-clinic .okitama-location__map { aspect-ratio: auto; height: clamp(320px, 44vw, 480px); }
.okitama-subpage .okitama-hero-no-photo .okitama-subpage-hero__inner { padding-bottom: 0; }
.okitama-subpage .okitama-hero-no-photo .okitama-subpage-hero__copy { position: relative; width: 100%; }
/* The former contact hero supplied this inherited alignment. */
.okitama-block-heading.okitama-contact-page .okitama-subpage-hero__title { text-align: center; }
.okitama-block-heading + .okitama-block-clinic .okitama-location-section { padding-top: clamp(38px, 4vw, 56px) !important; }
.okitama-block-heading + .okitama-block-flow .okitama-subpage-section,
.okitama-block-heading + .okitama-block-person .okitama-subpage-section,
.okitama-block-heading + .okitama-block-booking .okitama-subpage-section { padding-top: clamp(38px, 4vw, 56px) !important; }
.editor-styles-wrapper [data-type="acf/okitama-heading"] + [data-type="acf/okitama-person"] .okitama-subpage-section { padding-top: clamp(38px, 4vw, 56px) !important; }
.okitama-block-text-preset .wp-block-buttons, .okitama-block-visit-guide .wp-block-buttons { display: flex; justify-content: center; }
.okitama-block-text-preset .acf-innerblocks-container { display: contents; }
/* SWELL's legacy Group cards retain this space around their inner wrappers. */
:is(.post_content, .editor-styles-wrapper) .okitama-block-faq-first .okitama-first-visit-faq__item,
:is(.post_content, .editor-styles-wrapper) .okitama-block-prices .okitama-price-item,
:is(.post_content, .editor-styles-wrapper) .okitama-block-flow :is(.okitama-feature-item, .okitama-step-item, .okitama-line-guide__step) { margin-bottom: 1em !important; }
:is(.post_content, .editor-styles-wrapper) .okitama-block-faq-first .okitama-first-visit-faq__item:last-child,
:is(.post_content, .editor-styles-wrapper) .okitama-block-prices .okitama-price-item:last-child,
:is(.post_content, .editor-styles-wrapper) .okitama-block-flow :is(.okitama-feature-item, .okitama-step-item, .okitama-line-guide__step):last-child { margin-bottom: 0 !important; }
.editor-styles-wrapper .okitama-section-block iframe { pointer-events: none; }
/* The former shortcode left an empty paragraph before these buttons. Its 1em
 * margin moves a centered desktop column by .5em and stacked buttons by 1em. */
.okitama-home-cta .okitama-final-cta__actions-column,
.okitama-block-cta:is(.okitama-contact-page, .okitama-concern-directory-page, .okitama-concern-detail-page) .okitama-final-cta__actions-column { padding-top: 1em; }
@media (max-width: 781px) {
	.okitama-section-block .wp-block-columns { flex-wrap: wrap; }
	.okitama-section-block .wp-block-column { flex-basis: 100% !important; }
	.okitama-block-cards .okitama-arrival-section__columns { grid-template-columns: minmax(0, 1fr); }
}
.okitama-block {
	--okitama-block-ink: #3e3028;
	--okitama-block-blue: #19466d;
	--okitama-block-border: rgba(62, 48, 40, .16);
	box-sizing: border-box;
	background: #fff;
	color: var(--okitama-block-ink);
	font-family: "Zen Maru Gothic", "Hiragino Maru Gothic ProN", "Yu Gothic", sans-serif;
	font-size: 16px;
	font-weight: 400;
	line-height: 1.8;
	margin: 0 !important;
	padding: clamp(48px, 6vw, 76px) clamp(22px, 5vw, 72px) clamp(68px, 8vw, 108px);
}
.okitama-block *, .okitama-block *::before, .okitama-block *::after { box-sizing: border-box; }
.okitama-block__inner { width: 100%; max-width: 1120px; margin: 0 auto !important; }
.okitama-block__inner--narrow { max-width: 760px; }
.okitama-block h2.okitama-block__title {
	background: none !important; border: 0 !important; box-shadow: none !important;
	color: var(--okitama-block-blue) !important; font-family: inherit !important;
	font-size: clamp(29px, 3vw, 40px) !important; font-weight: 500 !important;
	letter-spacing: .035em; line-height: 1.5 !important;
	margin: 0 0 clamp(28px, 4vw, 48px) !important; padding: 0 !important;
	text-align: center; text-wrap: balance;
}
.okitama-block h3:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *)) {
	background: none !important; border: 0 !important; box-shadow: none !important;
	color: var(--okitama-block-blue) !important; font-family: inherit !important;
	font-size: clamp(20px, 2vw, 24px) !important; font-weight: 500 !important;
	line-height: 1.5 !important; margin: 0 0 10px !important; padding: 0 !important;
}
.okitama-block h2:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *))::before,
.okitama-block h2:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *))::after,
.okitama-block h3:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *))::before,
.okitama-block h3:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *))::after { content: none !important; }
.okitama-block__empty { background: #eef6f9; border: 1px dashed #276397; padding: 22px; }
.okitama-block-route, .okitama-block-text--cream { background: #f9f5ee; }
.okitama-block-route__grid {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); align-items: stretch;
	gap: clamp(20px, 3vw, 32px); margin: 0 auto !important; padding: 0 !important;
	list-style: none !important; width: 92%;
}
.okitama-block-route__step {
	background: #fff; border: 1px solid var(--okitama-block-border); border-radius: 20px;
	display: flex; flex-direction: column; min-width: 0; overflow: hidden;
	margin: 0 !important; padding: 0 0 clamp(22px, 3vw, 32px) !important;
}
.okitama-block-route__step::before { content: none !important; }
.okitama-block-route__image { margin: 0 0 clamp(20px, 3vw, 28px) !important; overflow: hidden; }
.okitama-block-route__image img { aspect-ratio: 3/2; display: block; height: auto; object-fit: cover; width: 100%; }
.okitama-block-route__image--landmark img { object-position: center 68%; }
.okitama-block-route__step p, .okitama-block-route__step h3 {
	margin-left: clamp(22px, 3vw, 32px) !important; margin-right: clamp(22px, 3vw, 32px) !important;
}
.okitama-block-route__number { color: #7f5d23; font-size: 13px; font-weight: 500; letter-spacing: .12em; margin-top: 0 !important; margin-bottom: 8px !important; }
.okitama-block-route__description { color: var(--okitama-block-ink); font-size: 15px; line-height: 1.8; margin-top: 0 !important; margin-bottom: 0 !important; }
.okitama-block-faq--cards .okitama-block-faq__items { display: grid; gap: clamp(16px, 2.3vw, 28px); grid-template-columns: repeat(2, minmax(0, 1fr)); }
.okitama-block-faq--cards .okitama-block-faq__item { background: #eef6f9; border-radius: 20px; padding: clamp(26px, 3vw, 38px); min-width: 0; }
.okitama-block-faq--cards .okitama-block-faq__item:nth-child(even) { background: #f8f2e8; }
.okitama-block-faq__item p { font-size: 16px; line-height: 1.8; margin: 0 !important; }
.okitama-block-faq--accordion .okitama-block-faq__items { max-width: 760px; margin: auto; }
.okitama-block-faq--accordion details { border-bottom: 1px solid var(--okitama-block-border); padding: 20px 0; }
.okitama-block-faq--accordion summary { color: var(--okitama-block-blue); cursor: pointer; font-size: 17px; font-weight: 500; line-height: 1.7; padding: 4px 0; }
.okitama-block-faq--accordion details p { margin: 12px 0 0 20px !important; }
.okitama-block-faq summary:focus-visible { outline: 2px solid #276397; outline-offset: 4px; }
.okitama-block-text__content p:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *)),
.okitama-block-text__content li:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *)) { font-family: inherit !important; font-size: 16px !important; color: var(--okitama-block-ink) !important; line-height: 2 !important; }
.okitama-block-text__content p:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *)) { margin: 0 0 1.5em; }
.okitama-block-text__content h3:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *)) { margin-top: 1.8em !important; }
.okitama-block-text__content :last-child:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *)) { margin-bottom: 0; }
.okitama-block-text__content .wp-block-button__link:not(:where(.okitama-swell-content, .okitama-swell-content *, [data-type^="loos/"], [data-type^="loos/"] *)) { background: #276397 !important; border-radius: 8px !important; color: #fff !important; font-size: 16px !important; }
/* A content block cannot stretch past its containing text section. */
.okitama-text-section .alignfull {
	left: 0 !important; right: auto !important;
	width: 100% !important; max-width: 100% !important;
	margin-inline: 0 !important;
}
.okitama-sections-page { float: none !important; max-width: none !important; width: 100% !important; }
.okitama-sections-page__heading { padding: 48px 24px; text-align: center; }
.okitama-sections-page__heading h1 { color: #19466d; font-size: clamp(26px, 3vw, 40px); }
.okitama-sections-page__content > .okitama-block { margin-block: 0 !important; }
.editor-styles-wrapper .wp-block[data-type^="acf/okitama-"] { max-width: none; }
@media (min-width: 782px) {
	.okitama-block-route__image--landmark img { transform: scale(1.25); transform-origin: 100% 70%; }
}
@media (max-width: 781px) {
	.okitama-block-route__grid, .okitama-block-faq--cards .okitama-block-faq__items { grid-template-columns: minmax(0, 1fr); width: 100%; }
}
