/* SOURCE Workshop | TAKESHI — Coastline + Field Notes */
:root {
	--swt-ivory: #F7F4EC;
	--swt-paper: #FBF9F4;
	--swt-sand: #ECE4D3;
	--swt-sand-2: #F3EEE3;
	--swt-line: #D9CFBC;
	--swt-line-soft: #E6DECD;
	--swt-navy: #15283D;
	--swt-navy-deep: #0F1E2F;
	--swt-ink: #22313F;
	--swt-muted: #4F5D6A;
	--swt-cta: #B4541E;
	--swt-cta-hover: #94431A;
	--swt-accent-soft: #E3A57B;
	--swt-error: #B3261E;
	--swt-serif: "Hiragino Mincho ProN", "Yu Mincho", "YuMincho", "Noto Serif JP", "BIZ UDPMincho", serif;
	--swt-sans: "Hiragino Sans", "Hiragino Kaku Gothic ProN", "Yu Gothic", "YuGothic", "Noto Sans JP", "BIZ UDPGothic", "Meiryo", sans-serif;
	--swt-gutter: 40px;
	--swt-sec: 112px;
	--swt-header: 76px;
}
@media (max-width: 781px) {
	:root { --swt-gutter: 20px; --swt-sec: 64px; --swt-header: 60px; }
}

/* ---------- base ---------- */
html { scroll-behavior: smooth; }
body.swt-site {
	margin: 0;
	background: var(--swt-ivory);
	color: var(--swt-ink);
	font-family: var(--swt-sans);
	font-size: 17px;
	line-height: 1.9;
	-webkit-text-size-adjust: 100%;
	text-rendering: optimizeLegibility;
	overflow-x: hidden;
}
@media (max-width: 781px) { body.swt-site { font-size: 16px; line-height: 1.85; } }
.swt-site *, .swt-site *::before, .swt-site *::after { box-sizing: border-box; }
.swt-site img { max-width: 100%; height: auto; display: block; }
.swt-site a { color: var(--swt-navy); text-underline-offset: 4px; }
.swt-site a:hover { color: var(--swt-cta); }
.swt-site :focus-visible { outline: 3px solid var(--swt-cta); outline-offset: 3px; }
.swt-main { display: block; outline: none; }
.swt-main p, .swt-main ul, .swt-main ol, .swt-main figure, .swt-main h1, .swt-main h2, .swt-main h3, .swt-main dl { margin: 0; }
.swt-main p + p { margin-top: 1.4em; }
.swt-main [id] { scroll-margin-top: calc(var(--swt-header) + 16px); }
.swt-visually-hidden { position: absolute !important; width: 1px; height: 1px; overflow: hidden; clip: rect(0 0 0 0); white-space: nowrap; }
.swt-skip { position: absolute; left: 12px; top: -60px; z-index: 100; background: var(--swt-navy); color: #fff !important; padding: 10px 16px; border-radius: 4px; }
.swt-skip:focus { top: 12px; }
.swt-icon { flex: none; }

/* ---------- layout ---------- */
.swt-wrap { width: 100%; max-width: calc(1160px + var(--swt-gutter) * 2); margin-inline: auto; padding-inline: var(--swt-gutter); }
.swt-wrap--narrow, .swt-wrap--reading { max-width: calc(860px + var(--swt-gutter) * 2); }
.swt-wrap--form { max-width: calc(800px + var(--swt-gutter) * 2); }
.swt-sec { padding-block: var(--swt-sec); }
.swt-band { padding-block: var(--swt-sec); }
.swt-band--paper { background: var(--swt-paper); border-block: 1px solid var(--swt-line-soft); }
.swt-band--navy { background: var(--swt-navy); color: #EDE8DC; }
.swt-band--navy a:not(.wp-block-button__link) { color: #F7F4EC; }
.swt-center { text-align: center; }
.swt-measure { max-width: 780px; }

.swt-main .wp-block-columns.swt-split {
	display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 72px; align-items: center; margin: 0;
}
.swt-main .wp-block-columns.swt-split.swt-wrap { margin-inline: auto; }
.swt-main .wp-block-columns.swt-split--top { align-items: start; gap: 56px; }
.swt-main .wp-block-columns > .wp-block-column { min-width: 0; margin: 0; flex-basis: auto; }
@media (max-width: 781px) {
	.swt-main .wp-block-columns.swt-split { grid-template-columns: minmax(0, 1fr); gap: 32px; }
	.swt-main .wp-block-columns.swt-split--media-left > .wp-block-column:first-child { order: 2; }
}

/* ---------- type ---------- */
.swt-eyebrow { font-size: 13px; letter-spacing: .22em; color: var(--swt-muted); margin-bottom: 20px !important; }
.swt-band--navy .swt-eyebrow { color: #C9BFA9; }
.swt-display { font-family: var(--swt-serif); font-weight: 400; font-size: clamp(28px, 3.4vw, 46px); line-height: 1.55; letter-spacing: .05em; color: var(--swt-navy); margin-bottom: 28px !important; }
.swt-title { font-family: var(--swt-serif); font-weight: 400; font-size: clamp(26px, 2.9vw, 40px); line-height: 1.55; letter-spacing: .04em; color: var(--swt-navy); margin-bottom: 24px !important; }
.swt-h2 { font-family: var(--swt-serif); font-weight: 400; font-size: clamp(24px, 2.6vw, 34px); line-height: 1.6; letter-spacing: .04em; color: var(--swt-navy); margin-bottom: 32px !important; }
.swt-band--navy .swt-h2 { color: #F7F4EC; }
.swt-h2--small { font-size: clamp(21px, 2vw, 26px); margin-bottom: 18px !important; }
.swt-h3 { font-family: var(--swt-serif); font-weight: 400; font-size: clamp(19px, 1.8vw, 24px); line-height: 1.6; color: var(--swt-navy); margin-bottom: 16px !important; }
.swt-lead { font-size: 1.06em; }
.swt-main h1, .swt-main h2, .swt-main h3, .swt-lead, .swt-quote, .swt-closing, .swt-faq__item summary { word-break: auto-phrase; }
@media (max-width: 781px) { .swt-title { font-size: 24px; } .swt-display { letter-spacing: .02em; } .swt-quote { font-size: 19px; } }
.swt-note { font-size: 14px; color: var(--swt-muted); line-height: 1.75; }
.swt-main .swt-note { margin-top: 20px; }
.swt-rule { border-top: 1px solid var(--swt-line); padding-top: 18px; }
.swt-quote { font-family: var(--swt-serif); font-size: clamp(20px, 2vw, 26px); line-height: 1.6; color: var(--swt-navy); margin-top: .6em !important; }
.swt-kicker { color: var(--swt-muted); letter-spacing: .06em; }
.swt-name { font-family: var(--swt-serif); font-weight: 400; font-size: clamp(40px, 5vw, 60px); letter-spacing: .12em; line-height: 1.3; color: var(--swt-navy); margin: 4px 0 20px !important; }
.swt-pinline, .swt-pinlabel { display: flex; align-items: flex-start; gap: 10px; }
.swt-pinline::before, .swt-pinlabel::before {
	content: ""; flex: none; width: 20px; height: 20px; margin-top: .35em; background: var(--swt-cta);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='1.8' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M12 21s-7-6.2-7-11a7 7 0 0 1 14 0c0 4.8-7 11-7 11z'/%3E%3Ccircle cx='12' cy='10' r='2.5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.swt-pinlabel { color: var(--swt-cta); font-size: 13px; letter-spacing: .22em; font-weight: 600; margin-bottom: 18px !important; align-items: center; }
.swt-pinlabel::before { margin-top: 0; }
.swt-main .wp-block-columns + .swt-h2 { margin-top: 96px; }
@media (max-width: 781px) { .swt-main .wp-block-columns + .swt-h2 { margin-top: 56px; } }
.swt-morelink { margin-top: 32px !important; font-weight: 600; }

/* ---------- photos ---------- */
.swt-main .wp-block-image.swt-ph { position: relative; margin: 0; }
.swt-main .swt-ph img { width: 100%; object-fit: cover; border-radius: 4px; }
.swt-ph--square img { aspect-ratio: 1 / 1; }
.swt-ph--portrait img { aspect-ratio: 4 / 5; }
.swt-ph--wide img { aspect-ratio: 16 / 9; }
.swt-ph--photo img { aspect-ratio: 4 / 3; }
.swt-ph--banner img { aspect-ratio: auto; height: clamp(280px, 38vw, 540px); border-radius: 0 !important; }
/* 「イメージ」 labels were removed in v1.1.0. */
.swt-prose .wp-block-image.swt-ph, .swt-step .wp-block-image.swt-ph { margin-block: 8px 32px; }

/* ---------- buttons ---------- */
.swt-main .wp-block-buttons { display: flex; flex-wrap: wrap; gap: 14px; margin-top: 32px; }
.swt-main .wp-block-buttons.swt-btns--center { justify-content: center; }
.swt-main .wp-block-button { margin: 0; }
.swt-main .wp-block-button .wp-block-button__link, .swt-btn {
	display: inline-flex; align-items: center; justify-content: center; gap: 10px; min-height: 52px; padding: 10px 28px;
	border-radius: 999px; font-family: var(--swt-sans); font-size: 16px; font-weight: 600; line-height: 1.4; letter-spacing: .04em;
	text-decoration: none; border: 1.5px solid transparent; cursor: pointer; transition: background-color .15s, color .15s;
	background: var(--swt-navy); color: #fff;
}
.swt-main .is-style-swt-cta .wp-block-button__link, .swt-btn--cta { background: var(--swt-cta); color: #fff !important; border-color: var(--swt-cta); }
.swt-main .is-style-swt-cta .wp-block-button__link:hover, .swt-btn--cta:hover { background: var(--swt-cta-hover); border-color: var(--swt-cta-hover); color: #fff !important; }
.swt-main .is-style-swt-cta .wp-block-button__link::after {
	content: ""; width: 18px; height: 18px; background: currentColor;
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M5 12h14M13 6l6 6-6 6'/%3E%3C/svg%3E") center / contain no-repeat;
}
.swt-main .is-style-swt-line .wp-block-button__link { background: transparent; color: var(--swt-navy); border-color: var(--swt-navy); }
.swt-main .is-style-swt-line .wp-block-button__link:hover { background: var(--swt-navy); color: var(--swt-ivory); }
.swt-main .is-style-swt-inverse .wp-block-button__link { background: transparent; color: var(--swt-ivory); border-color: var(--swt-ivory); }
.swt-main .is-style-swt-inverse .wp-block-button__link:hover { background: var(--swt-ivory); color: var(--swt-navy); }
.swt-btns--large .wp-block-button__link { min-height: 58px; padding-inline: 40px; font-size: 17px; }
.swt-btn--wide { width: 100%; max-width: 420px; min-height: 60px; font-size: 17px; }
@media (max-width: 781px) {
	.swt-main .wp-block-buttons { flex-direction: column; align-items: stretch; }
	.swt-main .wp-block-button .wp-block-button__link { width: 100%; }
	.swt-btn--wide { max-width: none; }
}

/* ---------- header ---------- */
.swt-header { position: sticky; top: var(--wp-admin--admin-bar--height, 0px); z-index: 50; background: rgba(247, 244, 236, .97); border-bottom: 1px solid var(--swt-line); }
.swt-header__inner { max-width: calc(1240px + var(--swt-gutter) * 2); margin: 0 auto; padding: 0 var(--swt-gutter); min-height: var(--swt-header); display: flex; align-items: center; justify-content: space-between; gap: 24px; }
.swt-logo { display: flex; align-items: baseline; gap: 10px; text-decoration: none; color: var(--swt-navy) !important; line-height: 1.2; }
.swt-logo__main { font-family: var(--swt-serif); font-size: 21px; letter-spacing: .06em; }
.swt-logo__sub { font-size: 13px; letter-spacing: .24em; color: var(--swt-muted); }
.swt-nav { display: flex; align-items: center; gap: 26px; }
.swt-nav__list { list-style: none; margin: 0; padding: 0; display: flex; flex-wrap: wrap; gap: 4px 24px; }
.swt-nav__list a { color: var(--swt-ink); text-decoration: none; font-size: 15px; }
.swt-nav__list a:hover, .swt-nav__list a[aria-current="page"] { color: var(--swt-cta); }
.swt-nav__list a[aria-current="page"] { font-weight: 600; }
.swt-nav__cta { min-height: 44px !important; padding: 6px 22px !important; font-size: 15px !important; }
.swt-menu-toggle { display: none; width: 48px; height: 48px; border: 0; background: transparent; color: var(--swt-navy); padding: 0; cursor: pointer; align-items: center; justify-content: center; }
.swt-menu-toggle .swt-icon--close { display: none; }
.swt-menu-toggle[aria-expanded="true"] .swt-icon--menu { display: none; }
.swt-menu-toggle[aria-expanded="true"] .swt-icon--close { display: block; }
@media (max-width: 1023px) {
	.swt-header__inner { flex-wrap: wrap; padding-right: 12px; }
	.swt-logo { flex-direction: column; gap: 0; }
	.swt-logo__main { font-size: 17px; }
	.swt-logo__sub { font-size: 11px; }
	.swt-menu-toggle { display: inline-flex; }
	.swt-nav { flex-basis: 100%; flex-direction: column; align-items: stretch; gap: 0; padding: 0 8px 24px 0; }
	.swt-js .swt-nav { display: none; }
	.swt-js .swt-header.is-open .swt-nav { display: flex; }
	.swt-nav__list { flex-direction: column; gap: 0; }
	.swt-nav__list a { display: flex; align-items: center; min-height: 52px; border-bottom: 1px solid var(--swt-line); font-size: 16px; color: var(--swt-navy); }
	.swt-nav__cta { margin-top: 20px; width: 100%; min-height: 52px !important; }
}

/* ---------- hero ---------- */
.swt-hero { padding-block: 80px 104px; }
.swt-hero .swt-note { margin-top: 24px; }
.swt-hero--profile { padding-block: 72px 56px; }
@media (max-width: 781px) {
	.swt-hero { padding-block: 0 56px; }
	.swt-hero .swt-hero__grid > .wp-block-column:last-child { order: -1; margin-inline: calc(var(--swt-gutter) * -1); }
	.swt-hero .swt-hero__grid .swt-ph img { border-radius: 0; aspect-ratio: 4 / 3; }
	.swt-hero--profile { padding-top: 32px; }
}

/* ---------- route (STEP 1 / STEP 2) ---------- */
.swt-route { list-style: none; padding: 0 !important; margin: 48px 0 0 !important; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); border-top: 1px dashed #6E8296; }
.swt-route li { position: relative; padding: 32px 32px 0 0; font-size: 16px; }
.swt-route li::before { content: ""; position: absolute; top: -8px; left: 0; width: 14px; height: 14px; border-radius: 50%; background: var(--swt-navy); border: 2px solid var(--swt-accent-soft); }
.swt-route strong { display: block; font-family: var(--swt-serif); font-weight: 400; font-size: 24px; color: #F7F4EC; margin-bottom: 2px; }
@media (max-width: 781px) {
	.swt-route { grid-template-columns: 1fr; border-top: 0; border-left: 1px dashed #6E8296; margin-left: 7px !important; padding-left: 24px !important; gap: 24px; }
	.swt-route li { padding: 0; }
	.swt-route li::before { top: 8px; left: -32px; }
}

/* ---------- cards ---------- */
.swt-main .wp-block-columns.swt-cards { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 32px; margin: 0; }
@media (max-width: 781px) { .swt-main .wp-block-columns.swt-cards { grid-template-columns: 1fr; gap: 20px; } }
.swt-card { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; padding: 44px 40px; height: 100%; display: flex; flex-direction: column; gap: 18px; }
.swt-card > * { margin: 0 !important; }
.swt-card + .swt-card { margin-top: 20px; }
.swt-cards .swt-card + .swt-card { margin-top: 0; }
.swt-card__title { font-family: var(--swt-serif); font-weight: 400; font-size: 30px; color: var(--swt-navy); line-height: 1.4; }
.swt-card__sub { color: var(--swt-muted); margin-top: -10px !important; }
.swt-card__for { font-size: 15px; background: var(--swt-sand-2); padding: 12px 16px; border-radius: 4px; }
.swt-card__for strong { color: var(--swt-navy); }
.swt-card__link { margin-top: auto !important; font-weight: 600; }
@media (max-width: 781px) { .swt-card { padding: 28px 22px; } .swt-card__title { font-size: 24px; } }

/* ---------- numbered steps / checks ---------- */
.swt-steps, .swt-flow { list-style: none; padding: 0 !important; counter-reset: swt-step; }
.swt-steps { display: flex; flex-direction: column; gap: 14px; margin-top: 24px !important; }
.swt-steps li { counter-increment: swt-step; display: flex; gap: 16px; align-items: flex-start; }
.swt-steps li::before, .swt-flow li::before {
	content: counter(swt-step); flex: none; width: 32px; height: 32px; border-radius: 50%; border: 1.5px solid var(--swt-cta); color: var(--swt-cta);
	display: flex; align-items: center; justify-content: center; font-size: 15px; font-weight: 600; line-height: 1; background: var(--swt-ivory); margin-top: 2px;
}
.swt-flow { display: grid; grid-template-columns: repeat(5, minmax(0, 1fr)); gap: 24px; border-top: 1.5px dashed #C9B99C; margin-top: 56px !important; }
.swt-flow li { counter-increment: swt-step; position: relative; padding-top: 36px; font-size: 16px; }
.swt-flow li::before { position: absolute; top: -19px; left: 0; width: 36px; height: 36px; margin: 0; }
.swt-flow li:last-child::before { background: var(--swt-cta); color: #fff; }
@media (max-width: 1023px) {
	.swt-flow { grid-template-columns: 1fr; border-top: 0; border-left: 1.5px dashed #C9B99C; margin-left: 17px !important; padding-left: 30px !important; gap: 22px; }
	.swt-flow li { padding-top: 0; }
	.swt-flow li::before { top: 0; left: -48px; width: 34px; height: 34px; }
}
.swt-check { list-style: none; padding: 0 !important; display: flex; flex-direction: column; gap: 12px; }
.swt-check li { position: relative; padding-left: 32px; }
.swt-check li::before {
	content: ""; position: absolute; left: 0; top: .45em; width: 20px; height: 20px; background: var(--swt-cta);
	-webkit-mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
	mask: url("data:image/svg+xml,%3Csvg xmlns='http://www.w3.org/2000/svg' viewBox='0 0 24 24' fill='none' stroke='black' stroke-width='2.4' stroke-linecap='round' stroke-linejoin='round'%3E%3Cpath d='M20 6 9 17l-5-5'/%3E%3C/svg%3E") center / contain no-repeat;
}
.swt-check--grid { display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 12px 32px; margin-block: 28px 8px !important; }
@media (max-width: 781px) { .swt-check--grid { grid-template-columns: 1fr; } }
.swt-check--card { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; padding: 28px 32px !important; font-size: 16px; }
@media (max-width: 781px) { .swt-check--card { padding: 20px 18px !important; font-size: 15px; } }
.swt-prose .swt-check, .swt-prose .swt-steps { margin-block: 8px 8px; }

/* ---------- travel ---------- */
.swt-travel .swt-ph--banner img { height: clamp(260px, 40vw, 540px); }
.swt-travel__body { position: relative; margin-top: -140px !important; padding-bottom: var(--swt-sec); }
.swt-travel__body > .swt-eyebrow, .swt-travel__body > .swt-h2, .swt-travel__body > .swt-measure { background: var(--swt-ivory); margin: 0 !important; padding-inline: 64px; }
.swt-travel__body > .swt-eyebrow { padding-top: 64px; border-radius: 6px 6px 0 0; padding-bottom: 20px; }
.swt-travel__body > .swt-h2 { padding-bottom: 32px; }
.swt-travel__body > .swt-measure { max-width: none; padding-bottom: 56px; }
.swt-travel__body > .wp-block-columns { padding-inline: 64px; }
@media (max-width: 781px) {
	.swt-travel__body { margin-top: 0 !important; }
	.swt-travel__body > .swt-eyebrow, .swt-travel__body > .swt-h2, .swt-travel__body > .swt-measure, .swt-travel__body > .wp-block-columns { padding-inline: 0; }
	.swt-travel__body > .swt-eyebrow { padding-top: 44px; }
	.swt-travel__body > .swt-measure { padding-bottom: 36px; }
}

/* ---------- map motif (Field Notes) ---------- */
.swt-map {
	position: relative; overflow: hidden; padding-block: 120px;
	background-color: var(--swt-sand);
	background-image:
		url("../img/contours.svg"),
		linear-gradient(#DED4C0 1px, transparent 1px),
		linear-gradient(90deg, #DED4C0 1px, transparent 1px);
	background-size: cover, 32px 32px, 32px 32px;
	background-position: center, 0 0, 0 0;
}
.swt-map--head { padding-block: 88px; background-image: url("../img/contours-head.svg"), linear-gradient(#DED4C0 1px, transparent 1px), linear-gradient(90deg, #DED4C0 1px, transparent 1px); }
.swt-mapcard { position: relative; max-width: 860px; margin: 0 auto; background: var(--swt-paper); border: 1px solid #D2C6AE; border-radius: 6px; padding: 64px 64px 56px; box-shadow: 0 18px 40px -28px rgba(21, 40, 61, .45); }
@media (max-width: 781px) {
	.swt-map { padding-block: 64px; background-size: cover, 28px 28px, 28px 28px; }
	.swt-map--head { padding-block: 40px 44px; }
	.swt-mapcard { margin-inline: 16px; padding: 36px 22px 32px; }
	.swt-map--head .swt-ph img { aspect-ratio: 3 / 2; }
}

/* ---------- voices ---------- */
.swt-voices { display: flex; flex-direction: column; gap: 24px; }
.swt-voice { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; padding: 48px; display: grid; grid-template-columns: minmax(0, 1fr) minmax(0, 2fr); gap: 48px; align-items: start; }
.swt-voice__photo { margin: 0; }
.swt-voice__photo img { width: 100%; aspect-ratio: 4 / 3; object-fit: cover; border-radius: 4px; }
.swt-voice__heading { font-family: var(--swt-serif); font-weight: 400; font-size: 24px; color: var(--swt-navy); margin: 0 0 4px !important; }
.swt-voice__who { color: var(--swt-muted); font-size: 15px; margin-bottom: 20px !important; }
.swt-voices__note { text-align: left; }
@media (max-width: 781px) {
	.swt-voice { grid-template-columns: 1fr; padding: 24px 22px 28px; gap: 20px; }
	.swt-voice__photo img { width: 96px; height: 96px; border-radius: 50%; aspect-ratio: 1; }
}

/* ---------- FAQ ---------- */
.swt-faq { border-bottom: 1px solid var(--swt-line); }
.swt-faq__item { border-top: 1px solid var(--swt-line); }
.swt-faq__item summary { cursor: pointer; list-style: none; padding: 22px 48px 22px 0; font-weight: 600; font-size: 17px; line-height: 1.6; position: relative; color: var(--swt-navy); }
.swt-faq__item summary::-webkit-details-marker { display: none; }
.swt-faq__item summary::after { content: "+"; position: absolute; right: 8px; top: 15px; font-size: 26px; font-weight: 300; color: var(--swt-cta); }
.swt-faq__item[open] summary::after { content: "−"; }
.swt-faq__a { padding-bottom: 24px; }
@media (max-width: 781px) { .swt-faq__item summary { font-size: 16px; padding: 18px 40px 18px 0; } }

/* ---------- final CTA ---------- */
.swt-final { position: relative; }
.swt-final .swt-ph--banner img { height: 560px; }
.swt-final__panel { position: absolute; top: 50%; transform: translateY(-50%); left: max(var(--swt-gutter), calc((100% - 1160px) / 2)); max-width: 520px; background: var(--swt-navy); color: #EDE8DC; padding: 56px; border-radius: 6px; }
.swt-final__panel .swt-h2 { color: #F7F4EC; margin-bottom: 20px !important; }
@media (max-width: 781px) {
	.swt-final .swt-ph--banner img { height: auto; aspect-ratio: 3 / 2; }
	.swt-final__panel { position: static; transform: none; max-width: none; border-radius: 0; padding: 44px var(--swt-gutter) 52px; }
}

/* ---------- page head ---------- */
.swt-pagehead { background: var(--swt-paper); border-bottom: 1px solid var(--swt-line-soft); padding: 80px max(var(--swt-gutter), calc((100% - 860px) / 2)) 64px; }
.swt-pagehead .swt-title { margin-bottom: 16px !important; }
@media (max-width: 781px) { .swt-pagehead { padding-block: 44px 36px; } }

/* ---------- profile ---------- */
.swt-toc { list-style: none; padding: 24px 0 0 !important; margin-top: 36px !important; border-top: 1px solid var(--swt-line); counter-reset: swt-toc; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 24px; font-size: 15px; line-height: 1.7; }
.swt-toc li { counter-increment: swt-toc; display: flex; gap: 10px; }
.swt-toc li::before { content: counter(swt-toc); color: var(--swt-cta); font-family: var(--swt-serif); min-width: 1em; }
.swt-toc a { color: var(--swt-ink); text-decoration: none; }
.swt-toc a:hover { color: var(--swt-cta); text-decoration: underline; }
@media (max-width: 781px) { .swt-toc { grid-template-columns: 1fr; } .swt-hero--profile .swt-split > .wp-block-column:last-child { order: -1; } }
.swt-trail { counter-reset: swt-trail; padding-block: 24px 40px; }
.swt-step { counter-increment: swt-trail; position: relative; padding: 0 0 88px 88px; }
.swt-step::before { content: counter(swt-trail); position: absolute; left: 0; top: 0; width: 52px; height: 52px; border-radius: 50%; border: 1.5px solid var(--swt-cta); color: var(--swt-cta); background: var(--swt-ivory); display: flex; align-items: center; justify-content: center; font-family: var(--swt-serif); font-size: 20px; z-index: 1; }
.swt-step::after { content: ""; position: absolute; left: 25px; top: 60px; bottom: 8px; border-left: 1.5px dashed #C9B99C; }
.swt-step:last-child::after { display: none; }
.swt-step .swt-h2 { margin-top: 4px; }
.swt-step .swt-card { margin-top: 0; }
.swt-step .swt-card + .swt-card { margin-top: 20px; }
.swt-step .swt-split { margin-bottom: 8px !important; }
@media (max-width: 781px) {
	.swt-step { padding: 0 0 56px 0; }
	.swt-step::before { position: static; display: flex; width: 38px; height: 38px; font-size: 16px; margin-bottom: 12px; }
	.swt-step::after { display: none; }
}
.swt-pullquote { margin-top: 48px; padding: 40px 0; border-block: 1px solid var(--swt-line); text-align: center; }
.swt-pullquote .swt-quote { font-size: clamp(22px, 2.6vw, 32px); }
.swt-notebox { font-size: 15px; color: var(--swt-muted); background: #EFE8DA; padding: 14px 18px; border-radius: 4px; margin-top: 24px !important; }
.swt-ruled { list-style: none; padding: 0 !important; border-top: 1px solid var(--swt-line); }
.swt-ruled li { padding: 16px 0; border-bottom: 1px solid var(--swt-line); }
.swt-ruled--more { border-top: 0; }
.swt-closing { font-family: var(--swt-serif); font-size: clamp(22px, 2.6vw, 30px); line-height: 1.7; color: #F7F4EC; }

/* ---------- tables / overview ---------- */
.swt-prose .swt-h2 { margin-top: 64px; margin-bottom: 20px !important; }
.swt-prose > .swt-h2:first-child, .swt-prose .wp-block-image + .swt-h2 { margin-top: 0; }
.swt-table-wrap, .swt-main .wp-block-table.swt-table { overflow-x: auto; margin-block: 8px; }
.swt-main .wp-block-table table, .swt-overview { width: 100%; border-collapse: collapse; font-size: 15px; line-height: 1.7; background: #fff; }
.swt-main .wp-block-table th, .swt-main .wp-block-table td, .swt-overview th, .swt-overview td { border: 1px solid var(--swt-line); padding: 12px 16px; text-align: left; vertical-align: top; }
.swt-main .wp-block-table thead th { background: var(--swt-navy); color: #fff; font-weight: 600; }
.swt-main .wp-block-table tbody td:first-child, .swt-overview th { background: var(--swt-sand-2); color: var(--swt-navy); font-weight: 600; width: 26%; }
.swt-table--compare table { min-width: 560px; }

/* ---------- forms ---------- */
.swt-formcard { background: #fff; border: 1px solid var(--swt-line); border-radius: 8px; padding: 56px 56px 48px; margin-bottom: 64px; }
.swt-formcard__title { font-family: var(--swt-serif); font-weight: 400; font-size: 30px; line-height: 1.6; color: var(--swt-navy); margin: 0 0 8px !important; }
.swt-formcard__lead { font-size: 15px; color: var(--swt-muted); margin-bottom: 36px !important; }
@media (max-width: 781px) { .swt-formcard { padding: 28px 18px 32px; margin-inline: -4px; } .swt-formcard__title { font-size: 23px; } }
.swt-form { display: flex; flex-direction: column; gap: 36px; }
.swt-field { border: 0; margin: 0; padding: 0; min-width: 0; }
.swt-subfield { background: var(--swt-ivory); border-radius: 6px; padding: 22px; }
.swt-subfield[hidden] { display: none; }
.swt-label { display: block; font-weight: 600; color: var(--swt-navy); margin: 0 0 6px; font-size: 16px; line-height: 1.6; padding: 0; }
legend.swt-label { float: left; width: 100%; }
legend.swt-label + * { clear: both; }
.swt-label--small { font-size: 15px; }
.swt-tag { display: inline-block; font-size: 12px; font-weight: 600; color: #3F4B57; background: #E6DFD0; padding: 0 8px; border-radius: 3px; margin-left: 10px; vertical-align: 2px; line-height: 1.7; }
.swt-tag--req { color: #fff; background: var(--swt-cta); }
.swt-formcard__lead .swt-tag { margin: 0 4px 0 0; }
.swt-hint { font-size: 14px; color: var(--swt-muted); margin: 0 0 10px !important; line-height: 1.7; clear: both; }
.swt-hint--inline { display: block; margin: 4px 0 0 !important; font-weight: 400; }
.swt-input { display: block; width: 100%; min-height: 52px; padding: 12px 14px; border: 1.5px solid #8C7F68; border-radius: 6px; background: #fff; font: inherit; font-size: 16px; color: var(--swt-ink); line-height: 1.6; }
.swt-input:focus { outline: 3px solid var(--swt-cta); outline-offset: 1px; border-color: var(--swt-navy); }
.swt-input[aria-invalid="true"] { border-color: var(--swt-error); background: #FFF7F5; }
.swt-textarea { min-height: 140px; resize: vertical; }
.swt-select { appearance: auto; }
.swt-choices { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 200px), 1fr)); gap: 10px; clear: both; }
.swt-choice { display: flex; align-items: center; gap: 12px; min-height: 52px; padding: 8px 16px; border: 1.5px solid #CFC2A8; border-radius: 6px; background: #fff; cursor: pointer; line-height: 1.5; font-size: 15px; font-weight: 400; color: var(--swt-ink); }
.swt-choice input { width: 20px; height: 20px; accent-color: var(--swt-cta); margin: 0; flex: none; }
.swt-choice:has(input:checked) { border-color: var(--swt-cta); background: #FFF6EE; }
.swt-choice:has(input:focus-visible) { outline: 3px solid var(--swt-cta); outline-offset: 2px; }
.swt-choice--block { align-items: flex-start; padding: 14px 16px; }
.swt-choice--block input { margin-top: 3px; }
.swt-agree { display: flex; flex-direction: column; gap: 14px; border-top: 1px solid var(--swt-line-soft); padding-top: 32px; }
.swt-grid2 { display: grid; grid-template-columns: repeat(auto-fit, minmax(min(100%, 220px), 1fr)); gap: 16px; margin-top: 16px; }
.swt-regioninfo { margin-top: 12px !important; padding: 12px 16px; background: #EEF2F3; border-radius: 6px; font-size: 15px; }
.swt-regioninfo strong { color: var(--swt-navy); }
.swt-err { color: var(--swt-error); font-size: 14px; font-weight: 600; margin: 8px 0 0 !important; display: flex; gap: 6px; align-items: center; line-height: 1.5; }
.swt-errsum { border: 2px solid var(--swt-error); background: #FFF7F5; border-radius: 6px; padding: 18px 22px; margin-bottom: 36px; }
.swt-errsum__title { font-weight: 600; color: var(--swt-error); display: flex; align-items: center; gap: 8px; }
.swt-errsum ul { margin: 8px 0 0 !important; padding-left: 1.2em; font-size: 15px; }
.swt-errsum a { color: var(--swt-error); }
.swt-submit { text-align: center; }
.swt-submit .swt-hint { margin-top: 14px !important; }
.swt-hp { position: absolute !important; left: -9999px; width: 1px; height: 1px; overflow: hidden; }
@media (max-width: 781px) { .swt-choices { grid-template-columns: 1fr; gap: 8px; } .swt-choice input { width: 22px; height: 22px; } }

/* ---------- definition lists (fees, events, operator) ---------- */
.swt-dl { border-top: 1px solid var(--swt-line); }
.swt-dl > div { display: grid; grid-template-columns: minmax(0, 220px) minmax(0, 1fr); gap: 8px 32px; padding: 20px 0; border-bottom: 1px solid var(--swt-line); }
.swt-dl dt { font-weight: 600; color: var(--swt-navy); }
.swt-dl dd { margin: 0; }
.swt-dl--compact > div { grid-template-columns: minmax(0, 170px) minmax(0, 1fr); padding: 12px 0; font-size: 15px; }
@media (max-width: 781px) { .swt-dl > div, .swt-dl--compact > div { grid-template-columns: 1fr; gap: 2px; } }
.swt-fees > p { margin-bottom: 24px; }
.swt-mini-table { margin-top: 14px; border-collapse: collapse; font-size: 15px; width: 100%; max-width: 480px; }
.swt-mini-table caption { text-align: left; font-size: 13px; color: var(--swt-muted); padding-bottom: 6px; }
.swt-mini-table th, .swt-mini-table td { border: 1px solid var(--swt-line); padding: 8px 12px; text-align: left; font-weight: 400; background: #fff; }
.swt-mini-table th { background: var(--swt-sand-2); color: var(--swt-navy); }

/* ---------- events ---------- */
.swt-empty { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; padding: 40px; }
.swt-empty strong { color: var(--swt-navy); }
.swt-actions { margin-top: 24px !important; }
.swt-events { display: flex; flex-direction: column; gap: 24px; }
.swt-event { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; padding: 32px; }
.swt-event__labels { display: flex; gap: 12px; align-items: center; margin-bottom: 12px !important; }
.swt-badge { display: inline-block; background: var(--swt-navy); color: #fff; font-size: 13px; padding: 2px 10px; border-radius: 3px; }
.swt-event__course { font-family: var(--swt-serif); font-size: 22px; color: var(--swt-navy); }
.swt-event__text { margin-top: 16px; }
.swt-past { list-style: none; padding: 0 !important; border-top: 1px solid var(--swt-line); }
.swt-past li { display: flex; flex-wrap: wrap; gap: 4px 20px; padding: 14px 0; border-bottom: 1px solid var(--swt-line); font-size: 15px; }
.swt-past__course { font-weight: 600; color: var(--swt-navy); }
.swt-schedule .swt-h2, .swt-main .swt-events + .swt-h2, .swt-main .swt-empty + .swt-h2 { margin-top: 64px; }
@media (max-width: 781px) { .swt-empty, .swt-event { padding: 24px 20px; } }

/* thank-you */
.swt-done .swt-check--card { margin-block: 28px 0 !important; }

/* ---------- footer ---------- */
.swt-footer { background: var(--swt-navy-deep); color: #C9C3B6; font-size: 14px; }
.swt-footer__inner { max-width: calc(1160px + var(--swt-gutter) * 2); margin: 0 auto; padding: 64px var(--swt-gutter) 32px; display: flex; flex-wrap: wrap; justify-content: space-between; gap: 40px; }
.swt-footer__name { font-family: var(--swt-serif); font-size: 20px; color: #F7F4EC; letter-spacing: .06em; margin: 0 0 8px; }
.swt-footer__op { margin: 0; }
.swt-footer__nav ul { list-style: none; margin: 0; padding: 0; display: grid; grid-template-columns: repeat(2, minmax(0, 1fr)); gap: 4px 48px; }
.swt-footer__nav a { color: #E3DDD0; text-decoration: none; display: inline-flex; min-height: 36px; align-items: center; }
.swt-footer__nav a:hover { color: #fff; text-decoration: underline; }
.swt-footer__copy { margin: 0; text-align: center; padding: 16px var(--swt-gutter) 28px; font-size: 12px; color: #A9A396; }
@media (max-width: 781px) { .swt-footer__inner { padding-top: 44px; } .swt-footer__nav ul { gap: 4px 16px; } .swt-footer__nav a { min-height: 40px; } .swt-footer__name { font-size: 18px; } }

/* ---------- mobile sticky CTA ---------- */
.swt-sticky { display: none; }
@media (max-width: 781px) {
	.swt-sticky { position: sticky; bottom: 0; z-index: 40; display: flex; align-items: center; gap: 12px; background: rgba(247, 244, 236, .97); border-top: 1px solid var(--swt-line); padding: 10px 16px calc(12px + env(safe-area-inset-bottom)); }
	.swt-sticky__text { margin: 0; flex: 1; font-size: 12px; line-height: 1.5; color: var(--swt-muted); }
	.swt-sticky .swt-btn { min-height: 48px; padding-inline: 22px; }
}

@media (prefers-reduced-motion: reduce) { html { scroll-behavior: auto; } * { transition: none !important; } }

/* ---------- v1.1.0 ---------- */
.swt-voice--text { grid-template-columns: 1fr; }
.swt-price { font-size: 1.1em; color: var(--swt-navy); }
.swt-benefits > p { margin-bottom: 20px; }
.swt-benefit { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; padding: 28px 32px; margin-top: 16px; }
.swt-benefit__label { display: inline-block; font-size: 13px; font-weight: 600; color: #fff; background: var(--swt-cta); padding: 1px 10px; border-radius: 3px; letter-spacing: .08em; margin-bottom: 10px !important; }
.swt-benefit__title { font-family: var(--swt-serif); font-weight: 400; font-size: 21px; line-height: 1.6; color: var(--swt-navy); margin: 0 0 10px !important; }
.swt-benefit p + p { margin-top: .8em; }
@media (max-width: 781px) { .swt-benefit { padding: 22px 20px; } }
.swt-reports { display: grid; grid-template-columns: repeat(auto-fill, minmax(min(100%, 320px), 1fr)); gap: 28px; margin-bottom: 48px; }
.swt-report-card { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; overflow: hidden; }
.swt-report-card__link { display: flex; flex-direction: column; text-decoration: none; color: var(--swt-ink) !important; height: 100%; }
.swt-report-card__link:hover .swt-report-card__title { color: var(--swt-cta); }
.swt-report-card__img img { width: 100%; aspect-ratio: 3 / 2; object-fit: cover; }
.swt-report-card__body { display: flex; flex-direction: column; gap: 8px; padding: 20px 22px 24px; align-items: flex-start; }
.swt-report-card__title { font-family: var(--swt-serif); font-size: 20px; line-height: 1.5; color: var(--swt-navy); }
.swt-report-card__meta { font-size: 14px; color: var(--swt-muted); }
.swt-report-hero { margin-top: 48px; }
.swt-report-hero__img { width: 100%; border-radius: 4px; }
.swt-report-body .wp-block-gallery { margin-block: 24px; }
.swt-report-body .wp-block-image img { border-radius: 4px; }
.swt-report-body { padding-top: 40px; }
@media (max-width: 781px) {
	.swt-overview th, .swt-overview td { display: block; width: auto; }
	.swt-overview th { border-bottom: 0; padding-bottom: 4px; }
	.swt-overview td { border-top: 0; padding-top: 4px; }
	.swt-overview tr { display: block; }
}
/* numbered steps: keep label and text in one flowing line */
.swt-steps li { display: block; position: relative; padding-left: 48px; min-height: 34px; }
.swt-steps li::before { position: absolute; left: 0; top: 0; margin-top: 0; }

/* ---------- v1.2.0: 旅するSOURCE — text on the photo with an ivory gradient ---------- */
.swt-travel--v2 .swt-travel__hero { position: relative; overflow: hidden; min-height: clamp(520px, 44vw, 640px); display: flex; align-items: center; }
.swt-travel--v2 .swt-travel__hero > .wp-block-image { position: absolute; inset: 0; margin: 0; }
.swt-travel--v2 .swt-travel__hero > .wp-block-image img { width: 100%; height: 100% !important; object-fit: cover; object-position: 68% 50%; border-radius: 0; }
.swt-travel--v2 .swt-travel__hero > .wp-block-image::after {
	content: ""; position: absolute; inset: 0; pointer-events: none;
	background:
		linear-gradient(90deg,
			rgba(247, 244, 236, .96) 0,
			rgba(247, 244, 236, .93) calc(max(var(--swt-gutter), (100% - 1160px) / 2) + 600px),
			rgba(247, 244, 236, .55) calc(max(var(--swt-gutter), (100% - 1160px) / 2) + 760px),
			rgba(247, 244, 236, 0) calc(max(var(--swt-gutter), (100% - 1160px) / 2) + 940px)),
		linear-gradient(0deg, var(--swt-ivory) 0, rgba(247, 244, 236, 0) 140px);
}
.swt-travel--v2 .swt-travel__head { position: relative; z-index: 1; padding-block: 72px; }
.swt-travel--v2 .swt-travel__head > * { max-width: 580px; background: none; padding: 0; }
.swt-travel--v2 .swt-travel__head .swt-eyebrow { color: #3F4B57; }
.swt-travel--v2 .swt-travel__head .swt-h2 { color: var(--swt-navy); }
.swt-travel--v2 .swt-travel__head .swt-measure { color: var(--swt-ink); }
.swt-travel--v2 .swt-travel__body { margin-top: 0 !important; padding-block: 40px var(--swt-sec); }
.swt-travel--v2 .swt-travel__body > .wp-block-columns { padding-inline: 0; }
@media (max-width: 1023px) {
	.swt-travel--v2 .swt-travel__head > * { max-width: 520px; }
	.swt-travel--v2 .swt-travel__hero > .wp-block-image::after {
		background: linear-gradient(90deg, rgba(247, 244, 236, .96) 0, rgba(247, 244, 236, .93) 62%, rgba(247, 244, 236, .4) 85%, rgba(247, 244, 236, 0) 100%), linear-gradient(0deg, var(--swt-ivory) 0, rgba(247, 244, 236, 0) 120px);
	}
}
@media (max-width: 781px) {
	/* Phones: the photo sits above the text, so nothing overlaps. */
	.swt-travel--v2 .swt-travel__hero { display: block; min-height: 0; }
	.swt-travel--v2 .swt-travel__hero > .wp-block-image { position: static; }
	.swt-travel--v2 .swt-travel__hero > .wp-block-image img { height: auto !important; aspect-ratio: 4 / 3; object-position: 70% 50%; }
	.swt-travel--v2 .swt-travel__hero > .wp-block-image::after { display: none; }
	.swt-travel--v2 .swt-travel__head { padding-block: 40px 8px; }
	.swt-travel--v2 .swt-travel__body { padding-top: 24px; }
}

/* ---------- v1.2.0: 正式申込 ---------- */
.swt-testbar { background: #FFF1DC; border: 1.5px dashed var(--swt-cta); border-radius: 6px; padding: 12px 16px; margin-bottom: 24px; font-size: 14px; }
.swt-flag { background: #FFF1DC; border-left: 4px solid var(--swt-cta); padding: 10px 14px; font-size: 14px; font-weight: 600; color: #7A3A12; margin-bottom: 24px !important; }
.swt-confirm { margin-bottom: 8px; }
.swt-overview.swt-confirm th { width: 32%; }
.swt-price-table .swt-total th, .swt-price-table .swt-total td { background: #FFF6EE; font-size: 17px; }
.swt-bank { background: #fff; border: 1px solid var(--swt-line); border-radius: 6px; padding: 16px 20px; margin: 12px 0 16px; font-size: 16px; line-height: 1.9; }
.swt-btn--line { background: transparent; color: var(--swt-navy) !important; border-color: var(--swt-navy); }
.swt-btn--line:hover { background: var(--swt-navy); color: #fff !important; }
.swt-submit--two { display: flex; flex-wrap: wrap; gap: 12px; justify-content: center; }
.swt-formcard .swt-h3 { margin-top: 36px !important; }
.swt-event__title { font-family: var(--swt-serif); font-weight: 400; font-size: 20px; color: var(--swt-navy); margin: 0 0 12px !important; }
.swt-legal th { width: 30%; }
@media (max-width: 781px) { .swt-submit--two .swt-btn { width: 100%; } }

/* ---------- v1.3.4 スマートフォン版トップのファーストビュー（PCは変更なし） ----------
   表示順：小見出し → キャッチコピー → 補足説明 → 写真（横長） → ボタン → 注記
   HTMLは変えず、文章の列を display: contents にして並べ替える。 */
@media (max-width: 781px) {
	.swt-hero { padding-block: 28px 48px; }
	.swt-main .wp-block-columns.swt-hero__grid { gap: 0; }
	.swt-hero .swt-hero__grid > .wp-block-column:first-child { display: contents; }
	.swt-hero .swt-hero__grid .swt-eyebrow { order: 1; font-size: 12px; letter-spacing: .14em; line-height: 1.7; margin-bottom: 14px !important; }
	.swt-hero .swt-hero__grid .swt-display { order: 2; font-size: clamp(24px, 7.6vw, 32px); line-height: 1.5; letter-spacing: .03em; margin-bottom: 14px !important; }
	.swt-hero .swt-hero__grid .swt-lead { order: 3; font-size: clamp(13px, 3.7vw, 15px); letter-spacing: .02em; line-height: 1.85; margin-bottom: 22px !important; }
	.swt-hero .swt-hero__grid > .wp-block-column:last-child { order: 4; margin: 0 calc(var(--swt-gutter) * -1); }
	.swt-hero .swt-hero__grid .swt-ph img { aspect-ratio: 16 / 10; object-position: 58% 60%; }
	.swt-hero .swt-hero__grid .wp-block-buttons { order: 5; margin-top: 28px; }
	.swt-hero .swt-hero__grid .swt-note { order: 6; margin-top: 18px; font-size: clamp(12px, 3.4vw, 13.5px); line-height: 1.8; word-break: auto-phrase; }
}
@media (min-width: 600px) and (max-width: 781px) {
	/* タブレット縦：写真が画面の大半を占めないよう高さを抑える */
	.swt-hero .swt-hero__grid .swt-ph img { aspect-ratio: 2 / 1; }
}

/* ---------- v1.3.4 固定CTAバー ----------
   低めのバーにし、iPhoneのホームインジケーター分の余白を確保。ページ内の同じボタンや
   開催希望フォームが画面に見えている間は隠す（site.js）。ページ最下部ではフッターの後ろに置かれるため、フッターを隠さない。 */
@media (max-width: 781px) {
	html { scroll-padding-bottom: 80px; }
	.swt-sticky { padding: 8px 16px calc(8px + env(safe-area-inset-bottom)); gap: 10px; transition: transform .25s ease, visibility .25s; }
	.swt-sticky .swt-btn { min-height: 44px; padding-inline: 20px; font-size: 15px; }
	.swt-sticky__text { font-size: 11.5px; line-height: 1.45; }
	.swt-sticky.is-hidden { transform: translateY(110%); visibility: hidden; }
}

/* ---------- v1.3.8 受講者の声 ----------
   見出しを約12%大きく（24px → 27px）。本人写真でない画像（共通・個別の画像）には「イメージ」と表示し、
   スマートフォンでは丸い顔写真の形にしない（人物の写真と誤解されないよう横長で表示）。 */
.swt-voice__heading { font-size: 27px; line-height: 1.55; margin: 0 0 8px !important; word-break: auto-phrase; }
.swt-voice__photo--deco { position: relative; }
.swt-voice__imgnote { position: absolute; left: 10px; bottom: 10px; font-size: 11px; letter-spacing: .12em; color: #fff; background: rgba(21, 40, 61, .62); padding: 2px 8px; border-radius: 3px; line-height: 1.6; }
@media (max-width: 781px) {
	.swt-voice__heading { font-size: clamp(20px, 5.6vw, 23px); }
	.swt-voice__photo--deco img { width: 100%; height: auto; aspect-ratio: 16 / 9; border-radius: 4px; }
}

/* ---------- v1.3.9 開催希望ページ「顔を合わせる時間を、大切にしたい。」 ---------- */
.swt-facetime { padding-block: 56px 8px; }
.swt-main .wp-block-columns.swt-facetime__grid { grid-template-columns: minmax(0, 5fr) minmax(0, 7fr); gap: 48px; max-width: 920px; margin-inline: auto; }
.swt-facetime .swt-ph img { aspect-ratio: 4 / 3; }
.swt-facetime .swt-h2 { margin-bottom: 18px !important; }
@media (max-width: 781px) {
	.swt-facetime { padding-block: 40px 0; }
	.swt-main .wp-block-columns.swt-facetime__grid { grid-template-columns: minmax(0, 1fr); gap: 20px; }
	.swt-facetime .swt-ph img { aspect-ratio: 3 / 2; }
}
.swt-phrase { display: inline-block; }


/* ---------- v1.3.10 プロフィール ---------- */
/* タイムラインの縦線：章と章の間に写真などのブロックが入っても途切れないようにする（章番号と位置は変えない） */
.swt-step:not(:has(~ .swt-step))::after { display: none; }
.swt-step > .alignwide, .swt-step > .alignfull { margin-inline: 0; width: auto; max-width: 100%; }
@media (min-width: 782px) {
	.swt-trail > :not(.swt-step) { position: relative; padding: 0 0 48px 88px; margin-inline: 0; max-width: none; }
	.swt-trail > :not(.swt-step)::after { content: ""; position: absolute; left: 25px; top: -12px; bottom: 0; border-left: 1.5px dashed #C9B99C; }
	.swt-trail > :not(.swt-step):not(:has(~ .swt-step))::after { display: none; }
}
/* 第3章：本とノートの写真を小さく（縦横比はそのまま・切り抜かない） */
.swt-step#s3 .wp-block-image { width: 100%; max-width: 360px; margin-inline: 0; }
.swt-step#s3 .wp-block-image img { aspect-ratio: auto 4 / 3; height: auto; object-fit: contain; contain-intrinsic-size: none; }
/* 第5章：「パパのお仕事、とっても楽しいよ！」の余白を広げる */
.swt-pullquote { margin-top: 56px; padding: 72px 0; }
.swt-pullquote .swt-quote { font-size: clamp(23px, 2.7vw, 33px); }
@media (max-width: 781px) { .swt-pullquote { margin-top: 40px; padding: 48px 0; } }
/* 第5章：海辺の親子写真とキャプション */
.swt-main .wp-block-image.swt-beach { max-width: 600px; margin: 56px auto 0; }
.swt-main .swt-ph--natural img { aspect-ratio: auto 4 / 3; height: auto; object-fit: contain; contain-intrinsic-size: none; }
.swt-beach figcaption { margin: 16px 0 0; text-align: center; font-family: var(--swt-serif); font-size: 15px; line-height: 1.8; color: var(--swt-muted); }
@media (max-width: 781px) { .swt-main .wp-block-image.swt-beach { margin-top: 40px; } }
/* 第9章のあとのエピローグ（章番号なし） */
.swt-epilogue { padding-block: 32px 104px; text-align: center; }
.swt-epilogue::before { content: ""; display: block; width: 48px; margin: 0 auto 56px; border-top: 1px solid var(--swt-cta); }
.swt-main .swt-epilogue .wp-block-image { width: 100%; max-width: 360px; margin: 0 auto; }
.swt-epilogue__text { font-family: var(--swt-serif); font-size: 17px; line-height: 2; color: var(--swt-navy); }
.swt-main .swt-epilogue .wp-block-image + .swt-epilogue__text { margin-top: 36px; }
.swt-main .swt-epilogue__text + .swt-epilogue__text { margin-top: 1em; }
@media (max-width: 781px) {
	.swt-epilogue { padding-block: 8px 72px; }
	.swt-epilogue::before { margin-bottom: 40px; }
	.swt-epilogue__text { font-size: 16px; text-align: left; }
	.swt-main .swt-epilogue .wp-block-image + .swt-epilogue__text { margin-top: 28px; }
}

/* ---------- v1.4.1 書籍『ソース』の紹介（控えめな補助の導線） ---------- */
.swt-book { display: grid; grid-template-columns: minmax(0, 1fr); gap: 28px; align-items: start; background: var(--swt-paper); border: 1px solid var(--swt-line-soft); border-radius: 4px; padding: 36px 40px; }
.swt-book--cover { grid-template-columns: 150px minmax(0, 1fr); }
.swt-book__cover img { width: 100%; height: auto; border-radius: 2px; box-shadow: 0 6px 18px rgba(21, 40, 61, .12); }
.swt-main .swt-book__title { font-family: var(--swt-serif); font-size: clamp(20px, 2.1vw, 24px); line-height: 1.6; color: var(--swt-navy); font-weight: 500; margin: 0 0 14px; }
.swt-main .swt-book__sub { color: var(--swt-muted); margin: -6px 0 14px; }
.swt-book__body p { font-size: 15.5px; line-height: 1.95; }
.swt-main .swt-book__meta { font-size: 13.5px; color: var(--swt-muted); line-height: 1.7; margin-top: 16px; }
.swt-main .swt-book__action { margin-top: 18px; display: flex; flex-wrap: wrap; align-items: center; gap: 10px; }
.swt-book__link { display: inline-block; padding: 9px 18px; border: 1px solid var(--swt-navy); border-radius: 999px; color: var(--swt-navy) !important; text-decoration: none; font-size: 14.5px; line-height: 1.5; background: transparent; }
.swt-book__link:hover { background: var(--swt-navy); color: var(--swt-ivory) !important; }
.swt-book__pr { font-size: 11.5px; letter-spacing: .08em; color: var(--swt-muted); border: 1px solid var(--swt-line); border-radius: 2px; padding: 1px 6px; }
.swt-main .swt-book__note, .swt-main .swt-book__disclosure { font-size: 12.5px; color: var(--swt-muted); line-height: 1.7; margin-top: 8px; }
.swt-main .swt-book__next { margin-top: 22px; padding-top: 16px; border-top: 1px solid var(--swt-line-soft); }
.swt-book__next a { color: var(--swt-cta); }
.swt-prose .swt-book { margin-block: 56px 64px; }
.swt-book-sec { padding-block: 0 var(--swt-sec); }
.swt-book-sec .swt-book { max-width: 860px; margin-inline: auto; }
@media (max-width: 781px) {
	.swt-book, .swt-book--cover { grid-template-columns: minmax(0, 1fr); padding: 26px 20px; gap: 20px; }
	.swt-book__cover { max-width: 140px; }
	.swt-prose .swt-book { margin-block: 40px 48px; }
}
