/*
Theme Name: HANAGIFT
Theme URI: https://hanagift.jp/
Description: GeneratePressを親テーマにした、全国の花店検索・花贈り比較メディア「HANAGIFT」専用テーマです。
Author: HANAGIFT
Author URI: https://hanagift.jp/
Template: generatepress
Version: 2.0.0
Text Domain: hanagift
Requires at least: 6.5
Requires PHP: 8.0
License: GNU General Public License v2 or later
License URI: https://www.gnu.org/licenses/gpl-2.0.html
*/

:root {
	--hana-bg: #fbf7f4;
	--hana-surface: #ffffff;
	--hana-text: #30262b;
	--hana-muted: #71656a;
	--hana-primary: #a33e61;
	--hana-primary-dark: #782743;
	--hana-plum: #4d2944;
	--hana-sage: #768c79;
	--hana-line: #eadfe3;
	--hana-gold: #b58b55;
	--hana-soft-rose: #f6e9ee;
	--hana-soft-sage: #edf2ed;
	--hana-shadow: 0 14px 40px rgba(77, 41, 68, 0.08);
	--hana-radius-sm: 10px;
	--hana-radius-md: 18px;
	--hana-radius-lg: 28px;
	--hana-content: 1180px;
	--hana-reading: 820px;
}

html {
	scroll-behavior: smooth;
}

body {
	background: var(--hana-bg);
	color: var(--hana-text);
	font-family:
		"Yu Gothic",
		"YuGothic",
		"Hiragino Kaku Gothic ProN",
		"Hiragino Sans",
		"Meiryo",
		sans-serif;
	font-size: 16px;
	line-height: 1.85;
	-webkit-font-smoothing: antialiased;
}

a {
	color: var(--hana-primary-dark);
	text-decoration-thickness: 0.08em;
	text-underline-offset: 0.2em;
}

a:hover,
a:focus {
	color: var(--hana-primary);
}

button,
input,
select,
textarea {
	font: inherit;
}

::selection {
	background: var(--hana-soft-rose);
	color: var(--hana-plum);
}

.grid-container,
.inside-header,
.inside-navigation,
.site-content {
	max-width: var(--hana-content);
}

.site-header {
	background: rgba(255, 255, 255, 0.96);
	border-bottom: 1px solid var(--hana-line);
	box-shadow: 0 4px 24px rgba(77, 41, 68, 0.04);
}

.inside-header {
	padding: 22px 28px;
}

.site-branding {
	position: relative;
}

.site-title {
	font-family:
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		serif;
	font-size: clamp(1.55rem, 2.8vw, 2.15rem);
	font-weight: 600;
	letter-spacing: 0.16em;
	line-height: 1.2;
}

.site-title a,
.site-title a:hover {
	color: var(--hana-plum);
	text-decoration: none;
}

.site-title::after {
	background: var(--hana-primary);
	border-radius: 999px;
	content: "";
	display: inline-block;
	height: 0.36em;
	margin-left: 0.28em;
	transform: rotate(-24deg);
	vertical-align: 0.12em;
	width: 0.7em;
}

.site-description {
	color: var(--hana-muted);
	font-size: 0.78rem;
	letter-spacing: 0.05em;
	margin-top: 5px;
}

.main-navigation,
.main-navigation ul ul {
	background: var(--hana-plum);
}

.main-navigation .main-nav ul li a,
.menu-toggle,
.main-navigation .menu-bar-items {
	color: #ffffff;
	font-size: 0.92rem;
	font-weight: 700;
	letter-spacing: 0.04em;
}

.main-navigation .main-nav ul li:hover > a,
.main-navigation .main-nav ul li:focus-within > a,
.main-navigation .main-nav ul li[class*="current-menu-"] > a {
	background: var(--hana-primary);
	color: #ffffff;
}

.site-content {
	padding: clamp(26px, 5vw, 64px) 24px;
}

.content-area {
	width: 100%;
}

.site-main {
	margin: 0;
}

.inside-article,
.page-header,
.paging-navigation {
	background: var(--hana-surface);
	border: 1px solid var(--hana-line);
	border-radius: var(--hana-radius-lg);
	box-shadow: var(--hana-shadow);
	padding: clamp(28px, 5vw, 64px);
}

.entry-header,
.page-header {
	margin-bottom: clamp(24px, 4vw, 44px);
}

.entry-title,
.page-title,
.entry-content h1,
.entry-content h2,
.entry-content h3 {
	color: var(--hana-plum);
	font-family:
		"Yu Mincho",
		"YuMincho",
		"Hiragino Mincho ProN",
		serif;
	font-weight: 600;
	line-height: 1.45;
}

.entry-title,
.page-title,
.entry-content h1 {
	font-size: clamp(1.8rem, 4.5vw, 2.75rem);
	letter-spacing: 0.035em;
}

.entry-content h2 {
	border-left: 5px solid var(--hana-primary);
	font-size: clamp(1.35rem, 3vw, 1.85rem);
	margin-top: 2.8em;
	padding: 0.2em 0 0.2em 0.8em;
}

.entry-content h3 {
	font-size: clamp(1.14rem, 2.4vw, 1.4rem);
	margin-top: 2.2em;
}

.entry-meta {
	color: var(--hana-muted);
	font-size: 0.82rem;
}

.entry-content > p,
.entry-content > ul,
.entry-content > ol,
.entry-content > figure,
.entry-content > table {
	margin-bottom: 1.6em;
}

.single-hnv_shop .site-content,
.single-hnv_area .site-content,
.single-hnv_network .site-content {
	max-width: calc(var(--hana-reading) + 48px);
}

.single-hnv_shop .inside-article,
.single-hnv_area .inside-article,
.single-hnv_network .inside-article {
	overflow: hidden;
	position: relative;
}

.single-hnv_shop .inside-article::before,
.single-hnv_area .inside-article::before,
.single-hnv_network .inside-article::before {
	background:
		radial-gradient(circle at 15% 45%, rgba(163, 62, 97, 0.16) 0 5px, transparent 6px),
		radial-gradient(circle at 50% 15%, rgba(118, 140, 121, 0.14) 0 7px, transparent 8px),
		radial-gradient(circle at 85% 55%, rgba(181, 139, 85, 0.14) 0 5px, transparent 6px);
	content: "";
	height: 70px;
	pointer-events: none;
	position: absolute;
	right: 24px;
	top: 10px;
	width: 120px;
}

.wp-block-table {
	border: 1px solid var(--hana-line);
	border-radius: var(--hana-radius-md);
	overflow: hidden;
}

.wp-block-table table {
	border-collapse: collapse;
	margin: 0;
	width: 100%;
}

.wp-block-table th,
.wp-block-table td {
	border: 0;
	border-bottom: 1px solid var(--hana-line);
	padding: 14px 16px;
	text-align: left;
	vertical-align: top;
}

.wp-block-table tr:last-child th,
.wp-block-table tr:last-child td {
	border-bottom: 0;
}

.wp-block-table th {
	background: var(--hana-soft-rose);
	color: var(--hana-plum);
	font-size: 0.88rem;
	font-weight: 700;
	width: 31%;
}

.hnv-button,
.entry-content a.hnv-button,
.wp-element-button,
.wp-block-button__link {
	align-items: center;
	background: var(--hana-primary);
	border: 2px solid var(--hana-primary);
	border-radius: 999px;
	box-shadow: 0 8px 24px rgba(163, 62, 97, 0.2);
	color: #ffffff;
	display: inline-flex;
	font-weight: 700;
	justify-content: center;
	line-height: 1.5;
	min-height: 50px;
	padding: 12px 24px;
	text-align: center;
	text-decoration: none;
	transition:
		background 0.2s ease,
		box-shadow 0.2s ease,
		transform 0.2s ease;
}

.hnv-button::after,
.entry-content a.hnv-button::after {
	content: "→";
	margin-left: 0.65em;
}

.hnv-button:hover,
.hnv-button:focus,
.entry-content a.hnv-button:hover,
.entry-content a.hnv-button:focus,
.wp-element-button:hover,
.wp-element-button:focus,
.wp-block-button__link:hover,
.wp-block-button__link:focus {
	background: var(--hana-primary-dark);
	border-color: var(--hana-primary-dark);
	box-shadow: 0 10px 28px rgba(120, 39, 67, 0.25);
	color: #ffffff;
	transform: translateY(-1px);
}

.hnv-correction,
.hnv-disclosure {
	border-radius: var(--hana-radius-sm);
	color: var(--hana-muted);
	font-size: 0.82rem;
	line-height: 1.7;
	padding: 14px 16px;
}

.hnv-correction {
	background: var(--hana-soft-sage);
	border-left: 4px solid var(--hana-sage);
}

.hnv-disclosure {
	background: #f7f4f1;
	border: 1px solid #e8e0da;
}

.hnv-finder {
	background: var(--hana-surface) !important;
	border: 1px solid var(--hana-line) !important;
	border-radius: var(--hana-radius-lg) !important;
	box-shadow: var(--hana-shadow);
	padding: clamp(22px, 5vw, 42px) !important;
}

.hnv-finder__controls {
	gap: 16px !important;
}

.hnv-finder__controls label {
	align-items: center;
	background: var(--hana-bg);
	border: 1px solid var(--hana-line);
	border-radius: var(--hana-radius-sm);
	display: flex;
	gap: 10px;
	padding: 13px 15px;
}

.hnv-finder input[type="checkbox"] {
	accent-color: var(--hana-primary);
	height: 1.15rem;
	width: 1.15rem;
}

.hnv-finder select {
	background: #ffffff;
	border: 1px solid #d8cbd0;
	border-radius: 8px;
	color: var(--hana-text);
	margin-left: auto;
	min-height: 42px;
	padding: 6px 10px;
}

.hnv-finder button {
	background: var(--hana-primary) !important;
	border-radius: 999px !important;
	min-height: 50px;
}

.hnv-result {
	border-top-color: var(--hana-line) !important;
}

.hnv-result__tag {
	color: var(--hana-primary-dark) !important;
}

.hnv-result a {
	background: var(--hana-primary) !important;
	border-radius: 999px !important;
}

.post-type-archive-hnv_shop .site-main,
.blog .site-main,
.archive .site-main,
.search .site-main {
	display: grid;
	gap: 24px;
}

.post-type-archive-hnv_shop article,
.blog article,
.archive article,
.search article {
	margin: 0;
}

.post-type-archive-hnv_shop .inside-article,
.blog .inside-article,
.archive .inside-article,
.search .inside-article {
	border-radius: var(--hana-radius-md);
	padding: clamp(24px, 4vw, 38px);
}

.post-type-archive-hnv_shop .entry-title,
.blog .entry-title,
.archive .entry-title,
.search .entry-title {
	font-size: clamp(1.25rem, 2.5vw, 1.6rem);
}

.entry-content ul:not([class]) {
	padding-left: 1.35em;
}

.entry-content ul:not([class]) li {
	margin-bottom: 0.55em;
}

.entry-content ul:not([class]) li::marker {
	color: var(--hana-primary);
}

.hnv-visual {
	background: var(--hana-soft-rose);
	border: 1px solid var(--hana-line);
	border-radius: var(--hana-radius-md);
	box-shadow: var(--hana-shadow);
	margin: 28px 0 34px;
	overflow: hidden;
}

.hnv-visual img {
	aspect-ratio: 3 / 2;
	display: block;
	height: auto;
	object-fit: cover;
	width: 100%;
}

.hnv-visual figcaption {
	background: rgba(255, 255, 255, 0.92);
	color: var(--hana-muted);
	font-size: 0.78rem;
	line-height: 1.7;
	margin: 0;
	padding: 10px 14px;
}

/* V2 editorial articles: keep the H1 first and show each image only once. */
.single-hnv_shop .post-image,
.single-hnv_area .post-image,
.single-hnv_network .post-image {
	display: none;
}

.hnv-editorial {
	font-size: 1.01rem;
}

.hnv-editorial > p:first-of-type:not(.hnv-disclosure) {
	font-size: clamp(1.05rem, 2vw, 1.16rem);
	line-height: 2;
}

.hnv-quick-answer {
	background: linear-gradient(135deg, var(--hana-soft-rose), #fff 72%);
	border: 1px solid var(--hana-line);
	border-radius: var(--hana-radius-md);
	box-shadow: var(--hana-shadow);
	margin: 32px 0;
	padding: clamp(22px, 4vw, 34px);
}

.hnv-quick-answer > strong {
	color: var(--hana-primary-dark);
	display: block;
	font-family: "Yu Mincho", "YuMincho", "Hiragino Mincho ProN", serif;
	font-size: 1.3rem;
	margin-bottom: 0.5em;
}

.hnv-quick-answer ul,
.hnv-order-check ul {
	display: grid;
	gap: 10px;
	list-style: none;
	margin: 18px 0 0;
	padding: 0;
}

.hnv-quick-answer li,
.hnv-order-check li {
	background: #fff;
	border-left: 4px solid var(--hana-sage);
	border-radius: 8px;
	padding: 11px 14px;
}

.hnv-decision-section {
	border-top: 1px solid var(--hana-line);
	margin-top: 48px;
	padding-top: 4px;
}

.hnv-order-check {
	background: var(--hana-soft-sage);
	border-radius: var(--hana-radius-md);
	margin-top: 52px;
	padding: clamp(22px, 4vw, 36px);
}

.hnv-order-check h2 {
	margin-top: 0;
}

.hnv-faq-item {
	border-bottom: 1px solid var(--hana-line);
	padding: 8px 0 22px;
}

.hnv-faq-item h3::before {
	color: var(--hana-primary);
	content: "Q. ";
	font-family: inherit;
}

.hnv-verified-facts {
	background: #faf9f8;
	border: 1px solid var(--hana-line);
	border-radius: var(--hana-radius-md);
	margin-top: 58px;
	padding: clamp(20px, 4vw, 34px);
}

.hnv-verified-facts > h2:first-child {
	margin-top: 0;
}

.hnv-campaigns {
	background: linear-gradient(135deg, #fff8e8, #fff);
	border: 1px solid #ead7ae;
	border-radius: var(--hana-radius-md);
	margin: 42px 0;
	padding: clamp(22px, 4vw, 34px);
}

.hnv-campaigns > h2:first-child {
	margin-top: 0;
}

.hnv-campaign-card {
	background: #fff;
	border-left: 5px solid var(--hana-gold);
	border-radius: 9px;
	margin: 14px 0;
	padding: 14px 16px;
}

.site-footer {
	background: var(--hana-plum);
	color: rgba(255, 255, 255, 0.84);
}

.site-footer a {
	color: #ffffff;
}

.footer-widgets,
.site-info {
	background: transparent;
}

.site-info {
	font-size: 0.8rem;
	letter-spacing: 0.03em;
}

:focus-visible {
	outline: 3px solid var(--hana-gold);
	outline-offset: 3px;
}

@media (max-width: 768px) {
	.inside-header {
		padding: 17px 18px;
	}

	.site-content {
		padding: 22px 14px 40px;
	}

	.inside-article,
	.page-header,
	.paging-navigation {
		border-radius: var(--hana-radius-md);
		padding: 25px 18px;
	}

	.wp-block-table {
		border: 0;
		overflow: visible;
	}

	.wp-block-table table,
	.wp-block-table tbody,
	.wp-block-table tr,
	.wp-block-table th,
	.wp-block-table td {
		display: block;
		width: 100%;
	}

	.wp-block-table tr {
		border: 1px solid var(--hana-line);
		border-radius: var(--hana-radius-sm);
		margin-bottom: 12px;
		overflow: hidden;
	}

	.wp-block-table th,
	.wp-block-table td {
		border: 0;
	}

	.wp-block-table th {
		padding-bottom: 8px;
	}

	.wp-block-table td {
		padding-top: 10px;
	}

	.hnv-button,
	.entry-content a.hnv-button,
	.wp-block-button,
	.wp-block-button__link {
		width: 100%;
	}

	.single-hnv_shop .inside-article::before,
	.single-hnv_area .inside-article::before,
	.single-hnv_network .inside-article::before {
		opacity: 0.65;
		right: 4px;
	}
}

@media (prefers-reduced-motion: reduce) {
	html {
		scroll-behavior: auto;
	}

	*,
	*::before,
	*::after {
		scroll-behavior: auto !important;
		transition-duration: 0.01ms !important;
	}
}
