/*
Theme Name: SWELL Child Flat Kyoto
Template: swell
Theme URI: https://example.com/
Description: 「ふらっと京都」用のSWELL子テーマです。
Version: 1.0.0
Author: Flat Kyoto
Text Domain: swell-child-flat-kyoto
*/

:root {
	--fk-ivory: #fbf7ef;
	--fk-paper: #fffdf8;
	--fk-ink: #3f342c;
	--fk-muted: #7a7168;
	--fk-green: #6f9074;
	--fk-green-soft: #dce7d8;
	--fk-pink: #e7928f;
	--fk-pink-soft: #f8d8d3;
	--fk-blue-soft: #d8e7ef;
	--fk-yellow-soft: #f6df8f;
	--fk-line: #eadfd2;
	--fk-shadow: 0 14px 34px rgba(80, 63, 44, 0.1);
	--fk-shadow-deep: 0 20px 52px rgba(80, 63, 44, 0.13);
}

body {
	background: var(--fk-ivory);
	color: var(--fk-ink);
}

.fk-page,
.fk-page * {
	box-sizing: border-box;
}

.fk-page {
	background:
		linear-gradient(120deg, rgba(220, 231, 216, 0.42) 0 9%, transparent 9% 100%),
		linear-gradient(180deg, #fffdf8 0%, var(--fk-ivory) 38%, #fffaf2 100%);
	color: var(--fk-ink);
	font-family: "Noto Sans JP", "Hiragino Kaku Gothic ProN", Meiryo, sans-serif;
	letter-spacing: 0;
	line-height: 1.8;
	min-height: 100vh;
	overflow-x: hidden;
}

.fk-container {
	inline-size: min(1120px, calc(100% - 32px));
	margin-inline: auto;
}

.fk-skip-link {
	background: var(--fk-ink);
	border-radius: 999px;
	color: #fff;
	inset-block-start: 12px;
	inset-inline-start: 12px;
	padding: 8px 14px;
	position: absolute;
	transform: translateY(-160%);
	z-index: 100;
}

.fk-skip-link:focus {
	transform: translateY(0);
}

.fk-site-header {
	padding-block: 18px 10px;
	position: relative;
	z-index: 5;
}

.fk-header-inner {
	align-items: center;
	display: flex;
	gap: clamp(14px, 1.8vw, 26px);
	justify-content: space-between;
}

.fk-brand {
	align-items: center;
	color: var(--fk-ink);
	display: inline-flex;
	flex: 0 1 280px;
	min-inline-size: 178px;
	text-decoration: none;
}

.fk-brand-logo {
	block-size: auto;
	display: block;
	inline-size: clamp(190px, 19vw, 300px);
	max-inline-size: 100%;
}

.fk-nav {
	align-items: center;
	display: flex;
	flex-wrap: nowrap;
	flex: 1 1 auto;
	gap: clamp(10px, 1.1vw, 18px);
	justify-content: flex-end;
	min-inline-size: 0;
}

.fk-nav-links {
	align-items: center;
	display: flex;
	gap: clamp(16px, 2vw, 34px);
	justify-content: flex-end;
	min-inline-size: 0;
}

.fk-nav a {
	color: var(--fk-ink);
	font-size: clamp(0.82rem, 0.78vw, 0.96rem);
	font-weight: 800;
	letter-spacing: 0;
	line-height: 1.2;
	text-decoration: none;
	white-space: nowrap;
}

.fk-nav-links a {
	position: relative;
	transition: color 0.18s ease;
}

.fk-nav-links a::after {
	background: var(--fk-pink);
	border-radius: 999px;
	block-size: 3px;
	content: "";
	inline-size: 0;
	inset-block-end: -10px;
	inset-inline: 0;
	margin-inline: auto;
	position: absolute;
	transition: inline-size 0.18s ease;
}

.fk-nav-links a:hover,
.fk-nav-links a:focus-visible {
	color: var(--fk-green);
}

.fk-nav-links a:hover::after,
.fk-nav-links a:focus-visible::after {
	inline-size: 22px;
}

.fk-nav-listing {
	background: linear-gradient(135deg, #ee8e91, #e67f83);
	border: 1px solid rgba(255, 255, 255, 0.78);
	border-radius: 999px;
	box-shadow: 0 10px 24px rgba(210, 107, 108, 0.23), inset 0 1px 0 rgba(255, 255, 255, 0.38);
	color: #fff !important;
	display: inline-flex;
	font-weight: 800;
	justify-content: center;
	min-inline-size: 142px;
	padding: 14px 20px;
	transition: box-shadow 0.18s ease, transform 0.18s ease;
}

.fk-nav-listing:hover,
.fk-nav-listing:focus-visible {
	box-shadow: 0 14px 26px rgba(210, 107, 108, 0.28), inset 0 1px 0 rgba(255, 255, 255, 0.42);
	transform: translateY(-1px);
}

.fk-menu {
	position: relative;
}

.fk-menu summary {
	align-items: center;
	background: rgba(255, 255, 255, 0.75);
	border: 1.5px solid rgba(100, 130, 105, 0.7);
	border-radius: 999px;
	color: var(--fk-green);
	cursor: pointer;
	display: inline-flex;
	flex-direction: column;
	font-size: 0.72rem;
	font-weight: 800;
	gap: 3px;
	justify-content: center;
	line-height: 1.1;
	list-style: none;
	min-block-size: 54px;
	min-inline-size: 86px;
	padding: 8px 16px;
	transition: background 0.18s ease, transform 0.18s ease;
}

.fk-menu summary::-webkit-details-marker {
	display: none;
}

.fk-menu summary:hover,
.fk-menu summary:focus-visible {
	background: #fff;
	transform: translateY(-1px);
}

.fk-menu-lines,
.fk-menu-lines::before,
.fk-menu-lines::after {
	background: currentColor;
	border-radius: 999px;
	block-size: 2px;
	display: block;
	inline-size: 24px;
	position: relative;
}

.fk-menu-lines::before,
.fk-menu-lines::after {
	content: "";
	inset-inline-start: 0;
	position: absolute;
}

.fk-menu-lines::before {
	inset-block-start: -7px;
}

.fk-menu-lines::after {
	inset-block-start: 7px;
}

.fk-menu-panel {
	background: rgba(255, 253, 248, 0.97);
	border: 1px solid var(--fk-line);
	border-radius: 18px;
	box-shadow: var(--fk-shadow);
	display: grid;
	gap: 4px;
	inline-size: min(78vw, 260px);
	inset-block-start: calc(100% + 12px);
	inset-inline-end: 0;
	padding: 12px;
	position: absolute;
	z-index: 20;
}

.fk-menu:not([open]) .fk-menu-panel {
	display: none;
}

.fk-menu-panel a {
	border-radius: 12px;
	color: var(--fk-ink);
	display: block;
	font-size: 0.94rem;
	padding: 12px 14px;
}

.fk-menu-panel a:hover,
.fk-menu-panel a:focus-visible {
	background: var(--fk-green-soft);
	color: var(--fk-green);
}

.fk-button {
	align-items: center;
	background: var(--fk-green);
	border: 1px solid transparent;
	border-radius: 999px;
	color: #fff;
	display: inline-flex;
	font-weight: 700;
	gap: 8px;
	justify-content: center;
	font-size: 0.92rem;
	min-block-size: 44px;
	padding: 9px 22px;
	text-decoration: none;
	transition: transform 0.18s ease, box-shadow 0.18s ease, background 0.18s ease;
}

.fk-button:hover,
.fk-button:focus-visible {
	background: #5e8165;
	box-shadow: 0 10px 22px rgba(80, 111, 87, 0.25);
	color: #fff;
	transform: translateY(-1px);
}

.fk-button--pink {
	background: var(--fk-pink);
}

.fk-button--ghost {
	background: #fff;
	border-color: #b8c9b9;
	color: var(--fk-green);
}

.fk-button--ghost:hover,
.fk-button--ghost:focus-visible {
	background: var(--fk-green-soft);
	color: var(--fk-green);
}

.fk-section {
	padding-block: 40px;
}

.fk-section-heading {
	align-items: center;
	display: flex;
	gap: 10px;
	justify-content: space-between;
	margin-block-end: 18px;
}

.fk-section-title {
	font-size: clamp(1.25rem, 2.1vw, 1.7rem);
	font-weight: 800;
	line-height: 1.4;
	margin: 0;
	position: relative;
}

.fk-section-title::before {
	color: var(--fk-pink);
	content: "●";
	font-size: 0.8em;
	margin-inline-end: 10px;
}

.fk-hero {
	isolation: isolate;
	min-block-size: 650px;
	padding-block: 34px 96px;
	position: relative;
}

.fk-hero::before {
	background: #c9d9c8;
	border-radius: 58% 42% 44% 56% / 47% 53% 47% 53%;
	content: "";
	inline-size: min(220px, 26vw);
	inset-block-start: 70px;
	inset-inline-start: -120px;
	min-block-size: 230px;
	opacity: 0.58;
	position: absolute;
	z-index: -1;
}

.fk-hero::after {
	background: #fff;
	border-radius: 52% 48% 0 0 / 72% 72% 0 0;
	content: "";
	inset-block-end: -2px;
	inset-inline: -8vw;
	min-block-size: 132px;
	position: absolute;
	z-index: -1;
}

.fk-hero-grid {
	align-items: start;
	display: grid;
	gap: clamp(24px, 3.3vw, 46px);
	grid-template-columns: minmax(360px, 0.84fr) minmax(520px, 1.16fr);
}

.fk-hero-copy {
	padding-block: 54px 24px;
	position: relative;
	z-index: 1;
}

.fk-hero-copy::after {
	color: var(--fk-pink);
	content: "✿";
	font-size: clamp(1.45rem, 2.4vw, 2rem);
	inset-block-start: 98px;
	inset-inline-end: 34px;
	line-height: 1;
	opacity: 0.85;
	position: absolute;
	transform: rotate(12deg);
}

.fk-hero-kicker {
	color: var(--fk-muted);
	display: inline-block;
	font-size: 0.82rem;
	font-weight: 800;
	margin-block-end: 16px;
}

.fk-hero-title {
	font-family: "Zen Kurenaido", "Yuji Syuku", "Hannotate SC", "YuKyokasho", "Klee", "Noto Sans JP", sans-serif;
	font-size: clamp(1.86rem, 3.05vw, 2.86rem);
	font-weight: 400;
	letter-spacing: 0;
	line-height: 1.5;
	margin: 0 0 20px;
	max-inline-size: min(100%, 10.8em);
	text-wrap: balance;
}

.fk-hero-lead {
	font-size: clamp(1rem, 1.6vw, 1.12rem);
	font-weight: 700;
	margin: 0 0 30px;
	max-inline-size: 500px;
}

.fk-hero-search {
	background: rgba(255, 253, 248, 0.92);
	border: 1px solid var(--fk-line);
	border-radius: 18px;
	box-shadow: var(--fk-shadow);
	display: grid;
	gap: 14px;
	grid-template-columns: 1fr 1fr auto;
	max-inline-size: 600px;
	padding: 18px;
	position: relative;
}

.fk-hero-search::before {
	background: rgba(255, 255, 255, 0.54);
	border-radius: inherit;
	content: "";
	inset: 7px;
	pointer-events: none;
	position: absolute;
}

.fk-field label {
	color: var(--fk-muted);
	display: block;
	font-size: 0.8rem;
	font-weight: 800;
	margin-block-end: 4px;
}

.fk-field select,
.fk-field input {
	appearance: none;
	background: #fff;
	border: 1px solid var(--fk-line);
	border-radius: 12px;
	color: var(--fk-ink);
	inline-size: 100%;
	min-block-size: 46px;
	padding: 8px 14px;
	position: relative;
	z-index: 1;
}

.fk-field,
.fk-hero-search .fk-button {
	position: relative;
	z-index: 1;
}

.fk-hero-media {
	aspect-ratio: 1.46;
	border-radius: 38px 0 0 128px;
	box-shadow: var(--fk-shadow-deep);
	inline-size: calc(100% + max(0px, (100vw - 1120px) / 2));
	margin-inline-end: calc(min(0px, (1120px - 100vw) / 2));
	overflow: hidden;
	position: relative;
}

.fk-hero-media img {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
}

.fk-hero-media::after {
	background: rgba(255, 253, 248, 0.86);
	border: 2px dashed var(--fk-pink);
	border-radius: 999px;
	box-shadow: 0 12px 28px rgba(80, 63, 44, 0.12);
	color: var(--fk-ink);
	content: "♥\Aみんなに\Aやさしい情報を\A集めています";
	font-weight: 800;
	font-size: 0.9rem;
	inset-block-end: 24px;
	inset-inline-end: 30px;
	line-height: 1.55;
	min-block-size: 132px;
	min-inline-size: 132px;
	padding: 18px 18px;
	position: absolute;
	text-align: center;
	white-space: pre;
}

.fk-section--conditions {
	background: #fff;
	margin-block-start: -66px;
	padding-block: 72px 102px;
	position: relative;
	z-index: 1;
}

.fk-condition-list {
	display: grid;
	gap: 16px 18px;
	grid-template-columns: repeat(10, minmax(74px, 1fr));
}

.fk-condition-link {
	align-items: center;
	color: var(--fk-ink);
	display: flex;
	flex-direction: column;
	font-size: 0.82rem;
	font-weight: 800;
	gap: 10px;
	text-align: center;
	text-decoration: none;
	transition: transform 0.18s ease, color 0.18s ease;
}

.fk-condition-link:hover,
.fk-condition-link:focus-visible {
	color: #52735a;
	transform: translateY(-3px);
}

.fk-condition-icon {
	align-items: center;
	background: var(--fk-green-soft);
	border-radius: 999px;
	box-shadow: inset 0 -7px 16px rgba(255, 255, 255, 0.46), 0 8px 18px rgba(80, 63, 44, 0.07);
	color: #5f8066;
	display: inline-flex;
	justify-content: center;
	min-block-size: 66px;
	min-inline-size: 66px;
	position: relative;
}

.fk-condition-icon::after {
	border: 1.5px dashed rgba(95, 128, 102, 0.26);
	border-radius: inherit;
	content: "";
	inset: 5px;
	position: absolute;
}

.fk-condition-fa {
	align-items: center;
	display: inline-flex;
	font-size: 2rem;
	justify-content: center;
	line-height: 1;
	position: relative;
	z-index: 1;
}

.fk-condition-link:nth-child(2n) .fk-condition-icon { background: var(--fk-pink-soft); }
.fk-condition-link:nth-child(3n) .fk-condition-icon { background: var(--fk-yellow-soft); }
.fk-condition-link:nth-child(4n) .fk-condition-icon { background: var(--fk-blue-soft); }
.fk-condition-link:nth-child(2n) .fk-condition-icon { color: #bf7270; }
.fk-condition-link:nth-child(3n) .fk-condition-icon { color: #92723c; }
.fk-condition-link:nth-child(4n) .fk-condition-icon { color: #5c7b91; }

.fk-card-grid {
	display: grid;
	gap: 24px;
	grid-template-columns: repeat(4, minmax(0, 1fr));
}

.fk-section--recommendations {
	background: linear-gradient(180deg, #f7faf1 0%, rgba(255, 250, 242, 0) 70%);
	padding-block-start: 66px;
}

.fk-place-card {
	background: #fff;
	border: 1px solid var(--fk-line);
	border-radius: 14px;
	box-shadow: 0 10px 24px rgba(80, 63, 44, 0.07);
	overflow: hidden;
	transition: transform 0.18s ease, box-shadow 0.18s ease;
}

.fk-place-card:hover {
	box-shadow: 0 15px 34px rgba(80, 63, 44, 0.1);
	transform: translateY(-2px);
}

.fk-place-card__image {
	aspect-ratio: 1.42;
	background:
		linear-gradient(135deg, rgba(111, 144, 116, 0.2), rgba(231, 146, 143, 0.18)),
		linear-gradient(45deg, #d7c2a1 0 25%, #b98762 25% 50%, #e4d8be 50% 75%, #8ca27d 75%);
	display: block;
	overflow: hidden;
}

.fk-place-card__image img {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
	transition: transform 0.25s ease;
}

.fk-place-card:hover .fk-place-card__image img {
	transform: scale(1.04);
}

.fk-place-card__body {
	padding: 16px 16px 18px;
}

.fk-place-card__meta {
	color: var(--fk-muted);
	font-size: 0.84rem;
	font-weight: 700;
	margin-block-end: 4px;
}

.fk-place-card__title {
	font-size: 1.08rem;
	font-weight: 800;
	line-height: 1.45;
	margin: 0 0 4px;
}

.fk-place-card__title a {
	color: var(--fk-ink);
	text-decoration: none;
}

.fk-chip-list {
	display: flex;
	flex-wrap: wrap;
	gap: 6px;
	list-style: none;
	margin: 10px 0 0;
	padding: 0;
}

.fk-chip {
	background: var(--fk-green-soft);
	border-radius: 999px;
	color: #4f6f55;
	display: inline-flex;
	font-size: 0.75rem;
	font-weight: 800;
	line-height: 1.3;
	padding: 5px 9px;
}

.fk-chip:nth-child(2n) {
	background: var(--fk-pink-soft);
	color: #9d5554;
}

.fk-chip:nth-child(3n) {
	background: var(--fk-blue-soft);
	color: #4d6d7d;
}

.fk-band {
	background: rgba(255, 253, 248, 0.8);
	border-block: 1px solid rgba(234, 223, 210, 0.75);
}

.fk-map-panel {
	background: #fffaf2;
	border: 1px solid var(--fk-line);
	border-radius: 22px;
	box-shadow: 0 12px 30px rgba(80, 63, 44, 0.08);
	display: grid;
	gap: 20px;
	grid-template-columns: 220px 1fr 260px;
	overflow: hidden;
	padding: 18px;
}

.fk-map-visual {
	background:
		linear-gradient(28deg, transparent 45%, rgba(111, 144, 116, 0.25) 46% 50%, transparent 51%),
		linear-gradient(120deg, transparent 40%, rgba(231, 146, 143, 0.18) 41% 45%, transparent 46%),
		linear-gradient(90deg, rgba(216, 231, 239, 0.5), rgba(220, 231, 216, 0.65));
	border-radius: 12px;
	min-block-size: 180px;
	overflow: hidden;
	position: relative;
}

.fk-map-visual img {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
	position: absolute;
	inset: 0;
}

.fk-map-visual span {
	background: var(--fk-pink);
	border: 3px solid #fff;
	border-radius: 999px;
	box-shadow: 0 8px 16px rgba(80, 63, 44, 0.18);
	block-size: 24px;
	inline-size: 24px;
	position: absolute;
}

.fk-map-visual span:nth-child(1) { inset-block-start: 22%; inset-inline-start: 22%; }
.fk-map-visual span:nth-child(2) { inset-block-start: 42%; inset-inline-start: 52%; background: var(--fk-green); }
.fk-map-visual span:nth-child(3) { inset-block-start: 62%; inset-inline-start: 76%; background: #8daec2; }

.fk-mini-list {
	list-style: none;
	margin: 0;
	padding: 0;
}

.fk-mini-list li + li {
	border-block-start: 1px solid var(--fk-line);
	margin-block-start: 8px;
	padding-block-start: 8px;
}

.fk-feature-grid,
.fk-cta-grid {
	display: grid;
	gap: 18px;
	grid-template-columns: repeat(3, minmax(0, 1fr));
}

#fk-features {
	background: #fff;
	margin-block: 22px;
	padding-block: 48px;
}

.fk-feature-card,
.fk-cta-card {
	background: #fff;
	border: 1px solid var(--fk-line);
	border-radius: 18px;
	box-shadow: 0 10px 24px rgba(80, 63, 44, 0.07);
	overflow: hidden;
	padding: 20px;
}

.fk-feature-card__thumb {
	aspect-ratio: 2.2;
	background: linear-gradient(120deg, rgba(111, 144, 116, 0.22), rgba(231, 146, 143, 0.18)), #d9c9ad;
	border-radius: 14px;
	margin-block-end: 12px;
	overflow: hidden;
}

.fk-feature-card__thumb img {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
}

.fk-cta-card {
	background: linear-gradient(135deg, #fffdf8, #f7ebe1);
	min-block-size: 180px;
	position: relative;
}

.fk-cta-card:nth-child(2) {
	background: linear-gradient(135deg, #fff8f4, #f8d8d3);
}

.fk-cta-card:nth-child(3) {
	background: linear-gradient(135deg, #f9fbf4, #dce7d8);
}

.fk-cta-card__image {
	block-size: 128px;
	border-radius: 14px;
	float: right;
	inline-size: 152px;
	margin: 0 0 12px 14px;
	object-fit: cover;
}

.fk-archive-header,
.fk-single-header {
	padding-block: 46px 28px;
}

.fk-page-title {
	font-size: clamp(2rem, 4vw, 3.4rem);
	font-weight: 800;
	line-height: 1.35;
	margin: 0;
}

.fk-filter {
	background: rgba(255, 253, 248, 0.92);
	border: 1px solid var(--fk-line);
	border-radius: 18px;
	box-shadow: var(--fk-shadow);
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(3, 1fr) auto;
	margin-block: 20px 32px;
	padding: 18px;
}

.fk-empty {
	background: #fff;
	border: 1px solid var(--fk-line);
	border-radius: 14px;
	padding: 24px;
}

.fk-single-layout {
	display: grid;
	gap: 28px;
	grid-template-columns: minmax(0, 1fr) 340px;
	padding-block-end: 56px;
}

.fk-single-main,
.fk-single-side {
	min-inline-size: 0;
}

.fk-main-photo {
	aspect-ratio: 1.7;
	background: linear-gradient(135deg, rgba(111, 144, 116, 0.18), rgba(231, 146, 143, 0.18)), #d8c4a8;
	border-radius: 20px;
	box-shadow: var(--fk-shadow);
	overflow: hidden;
}

.fk-main-photo img {
	block-size: 100%;
	inline-size: 100%;
	object-fit: cover;
}

.fk-info-box,
.fk-eval-box {
	background: #fff;
	border: 1px solid var(--fk-line);
	border-radius: 16px;
	margin-block-start: 22px;
	padding: 22px;
}

.fk-info-box h2,
.fk-eval-box h2 {
	font-size: 1.35rem;
	margin-block: 0 12px;
}

.fk-info-table {
	border-collapse: collapse;
	inline-size: 100%;
}

.fk-info-table th,
.fk-info-table td {
	border-block-start: 1px solid var(--fk-line);
	padding: 12px 0;
	text-align: start;
	vertical-align: top;
}

.fk-info-table th {
	color: var(--fk-muted);
	inline-size: 9em;
	padding-inline-end: 16px;
}

.fk-eval-list {
	display: grid;
	gap: 12px;
	grid-template-columns: repeat(2, minmax(0, 1fr));
}

.fk-eval-item {
	background: var(--fk-paper);
	border: 1px solid var(--fk-line);
	border-radius: 12px;
	padding: 14px;
}

.fk-eval-item strong {
	display: block;
	margin-block-end: 4px;
}

.fk-side-card {
	background: #fff;
	border: 1px solid var(--fk-line);
	border-radius: 16px;
	padding: 20px;
	position: sticky;
	top: 24px;
}

.fk-point-list {
	margin: 8px 0 0;
	padding-inline-start: 1.3em;
}

.fk-site-footer {
	background: rgba(248, 244, 236, 0.92);
	margin-block-start: 28px;
	position: relative;
}

.fk-footer-line {
	background: #fff url("http://test.wafful-design.com/wp-content/uploads/2026/04/flatkyoto-line.png") center bottom / min(1600px, 100vw) auto no-repeat;
	block-size: clamp(72px, 10vw, 132px);
	margin-block-end: -1px;
}

.fk-footer-inner {
	align-items: center;
	display: grid;
	gap: 22px;
	grid-template-columns: minmax(180px, 0.8fr) minmax(360px, 1.4fr) minmax(110px, 0.4fr);
	min-block-size: 86px;
	padding-block: 18px 24px;
}

.fk-footer-brand {
	color: var(--fk-ink);
	font-family: "Zen Kurenaido", "Noto Sans JP", sans-serif;
	font-size: clamp(1.55rem, 2.4vw, 2.15rem);
	font-weight: 700;
	letter-spacing: 0;
	text-decoration: none;
	white-space: nowrap;
}

.fk-footer-nav {
	align-items: center;
	display: flex;
	flex-wrap: wrap;
	gap: clamp(22px, 4vw, 58px);
	justify-content: center;
}

.fk-footer-nav a {
	color: #5b5148;
	font-size: 0.95rem;
	font-weight: 700;
	text-decoration: none;
	white-space: nowrap;
}

.fk-footer-nav a:hover,
.fk-footer-nav a:focus-visible {
	color: var(--fk-green);
}

.fk-footer-social {
	align-items: center;
	display: flex;
	gap: 14px;
	justify-content: flex-end;
}

.fk-footer-social-icon {
	align-items: center;
	color: #4f4038;
	display: inline-flex;
	justify-content: center;
}

.fk-footer-social-icon svg {
	block-size: 34px;
	fill: none;
	inline-size: 34px;
	stroke: currentColor;
	stroke-linecap: round;
	stroke-linejoin: round;
	stroke-width: 2.2;
}

.fk-footer-social-icon:nth-child(2) svg {
	fill: #4f4038;
	stroke: #4f4038;
}

.fk-footer-social-icon:nth-child(2) path {
	fill: #fff;
	stroke: #fff;
	stroke-width: 0;
}

.fk-company-page {
	padding-block: 28px 64px;
}

.fk-company-hero {
	background: linear-gradient(135deg, rgba(220, 231, 216, 0.78), rgba(248, 216, 211, 0.52));
	border: 1px solid var(--fk-line);
	border-radius: 24px;
	margin-block: 18px 30px;
	padding: clamp(28px, 5vw, 56px);
	position: relative;
	overflow: hidden;
}

.fk-company-hero::after {
	background: rgba(255, 253, 248, 0.58);
	border-radius: 999px;
	content: "";
	block-size: 180px;
	inline-size: 180px;
	inset-block-start: -80px;
	inset-inline-end: -56px;
	position: absolute;
}

.fk-company-kicker {
	color: var(--fk-green);
	display: inline-block;
	font-size: 0.9rem;
	font-weight: 800;
	margin-block-end: 8px;
}

.fk-company-hero h1 {
	font-family: "Zen Kurenaido", "Noto Sans JP", sans-serif;
	font-size: clamp(2rem, 4vw, 3.4rem);
	font-weight: 400;
	line-height: 1.45;
	margin: 0 0 12px;
}

.fk-company-hero p {
	font-weight: 700;
	margin: 0;
	max-inline-size: 680px;
}

.fk-company-panel {
	background: rgba(255, 253, 248, 0.92);
	border: 1px solid var(--fk-line);
	border-radius: 18px;
	box-shadow: var(--fk-shadow);
	margin-block-end: 28px;
	padding: clamp(22px, 4vw, 34px);
}

.fk-company-panel h2 {
	font-size: clamp(1.35rem, 2.3vw, 1.9rem);
	line-height: 1.45;
	margin-block: 0 12px;
}

.fk-company-panel h2::before {
	color: var(--fk-pink);
	content: "●";
	font-size: 0.75em;
	margin-inline-end: 10px;
}

.fk-company-panel p {
	margin-block: 0 16px;
}

.fk-service-menu-image {
	margin-block-start: 22px;
}

.fk-service-menu-image img {
	block-size: auto;
	border: 1px solid rgba(112, 91, 66, 0.1);
	border-radius: 20px;
	box-shadow: 0 18px 42px rgba(80, 63, 44, 0.1);
	display: block;
	inline-size: 100%;
}

.fk-service-table-wrap {
	border: 1px solid var(--fk-line);
	border-radius: 16px;
	overflow-x: auto;
}

.fk-service-table {
	background: #fff;
	border-collapse: collapse;
	inline-size: 100%;
	min-inline-size: 860px;
}

.fk-service-table th,
.fk-service-table td {
	border-block-end: 1px solid var(--fk-line);
	padding: 16px;
	text-align: start;
	vertical-align: top;
}

.fk-service-table th {
	background: #eef4e9;
	color: var(--fk-ink);
	font-size: 0.86rem;
	white-space: nowrap;
}

.fk-service-table td:first-child {
	font-weight: 800;
	inline-size: 220px;
}

.fk-service-price {
	color: #5f8066;
	font-weight: 800;
	white-space: nowrap;
}

.fk-service-note {
	color: var(--fk-muted);
	font-size: 0.9rem;
}

.fk-focusable :focus-visible,
.fk-page a:focus-visible,
.fk-page button:focus-visible,
.fk-page select:focus-visible,
.fk-page input:focus-visible {
	outline: 3px solid rgba(111, 144, 116, 0.55);
	outline-offset: 3px;
}

@media (max-width: 1180px) {
	.fk-header-inner {
		gap: 16px;
	}

	.fk-nav-links {
		display: none;
	}

	.fk-brand {
		flex-basis: 260px;
	}

	.fk-nav-listing {
		min-inline-size: 140px;
		padding-inline: 20px;
	}
}

@media (max-width: 1024px) {
	.fk-hero-grid,
	.fk-single-layout {
		grid-template-columns: 1fr;
	}

	.fk-hero {
		min-block-size: auto;
		padding-block: 20px 88px;
	}

	.fk-hero-copy {
		padding-block: 28px 0;
	}

	.fk-hero-copy::after {
		inset-block-start: 62px;
		inset-inline-end: 8px;
	}

	.fk-hero-media {
		border-radius: 28px 28px 28px 86px;
		inline-size: 100%;
		margin-inline-end: 0;
	}

	.fk-section--conditions {
		margin-block-start: -58px;
		padding-block-start: 66px;
	}

	.fk-card-grid {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fk-condition-list {
		grid-template-columns: repeat(5, minmax(74px, 1fr));
	}

	.fk-map-panel {
		grid-template-columns: 1fr;
	}

	.fk-filter,
	.fk-hero-search {
		grid-template-columns: 1fr 1fr;
	}

	.fk-filter .fk-button,
	.fk-hero-search .fk-button {
		grid-column: 1 / -1;
	}
}

@media (max-width: 720px) {
	.fk-container {
		inline-size: min(100% - 22px, 1120px);
	}

	.fk-header-inner {
		align-items: center;
		flex-direction: row;
		gap: 14px;
	}

	.fk-nav {
		margin-inline-start: auto;
	}

	.fk-nav-links,
	.fk-nav > .fk-nav-listing {
		display: none;
	}

	.fk-brand {
		flex-basis: 214px;
		min-inline-size: 150px;
	}

	.fk-brand-logo {
		inline-size: clamp(150px, 42vw, 214px);
	}

	.fk-menu summary {
		min-block-size: 50px;
		min-inline-size: 78px;
		padding: 7px 14px;
	}

	.fk-menu-panel {
		inset-inline-end: 0;
	}

	.fk-hero-title {
		font-size: clamp(1.48rem, 8vw, 1.72rem);
		line-height: 1.55;
		max-inline-size: 100%;
	}

	.fk-hero {
		padding-block: 4px 70px;
	}

	.fk-hero::before {
		inline-size: 160px;
		inset-block-start: 34px;
		inset-inline-start: -96px;
		min-block-size: 190px;
	}

	.fk-hero::after {
		min-block-size: 82px;
	}

	.fk-hero-media {
		border-radius: 24px 24px 24px 64px;
	}

	.fk-hero-media::after {
		display: none;
	}

	.fk-hero-lead {
		margin-block-end: 24px;
	}

	.fk-hero-search,
	.fk-filter,
	.fk-card-grid,
	.fk-feature-grid,
	.fk-cta-grid,
	.fk-eval-list {
		grid-template-columns: 1fr;
	}

	.fk-condition-list {
		grid-template-columns: repeat(2, minmax(0, 1fr));
	}

	.fk-section--conditions {
		margin-block-start: -46px;
		padding-block: 58px 84px;
	}

	.fk-condition-link {
		align-items: center;
		background: rgba(255, 255, 255, 0.78);
		border: 1px solid var(--fk-line);
		border-radius: 12px;
		flex-direction: row;
		justify-content: flex-start;
		padding: 8px;
		text-align: start;
	}

	.fk-condition-icon {
		min-block-size: 44px;
		min-inline-size: 44px;
	}

	.fk-condition-fa {
		font-size: 1.45rem;
	}

	.fk-footer-line {
		background-size: 980px auto;
		block-size: 86px;
	}

	.fk-footer-inner {
		grid-template-columns: 1fr;
		justify-items: center;
		min-block-size: auto;
		padding-block: 18px 28px;
		text-align: center;
	}

	.fk-footer-nav {
		gap: 14px 22px;
	}

	.fk-footer-social {
		justify-content: center;
	}

	.fk-company-page {
		padding-block-start: 10px;
	}

	.fk-company-hero {
		border-radius: 18px;
	}

	.fk-company-panel {
		border-radius: 16px;
	}

	.fk-service-menu-image img {
		border-radius: 14px;
	}

	.fk-info-table,
	.fk-info-table tbody,
	.fk-info-table tr,
	.fk-info-table th,
	.fk-info-table td {
		display: block;
		inline-size: 100%;
	}

	.fk-info-table th {
		border-block-start: 1px solid var(--fk-line);
		padding-block: 12px 0;
	}

	.fk-info-table td {
		border-block-start: 0;
		padding-block: 4px 12px;
	}
}
