/*
Theme Name: Twenty Twenty-Five
Theme URI: https://wordpress.org/themes/twentytwentyfive/
Author: the WordPress team
Author URI: https://wordpress.org
Description: Twenty Twenty-Five emphasizes simplicity and adaptability. It offers flexible design options, supported by a variety of patterns for different page types, such as services and landing pages, making it ideal for building personal blogs, professional portfolios, online magazines, or business websites. Its templates cater to various blog styles, from text-focused to image-heavy layouts. Additionally, it supports international typography and diverse color palettes, ensuring accessibility and customization for users worldwide.
Requires at least: 6.7
Tested up to: 6.8
Requires PHP: 7.2
Version: 1.3
License: GNU General Public License v2 or later
License URI: http://www.gnu.org/licenses/gpl-2.0.html
Text Domain: twentytwentyfive
Tags: one-column, custom-colors, custom-menu, custom-logo, editor-style, featured-images, full-site-editing, block-patterns, rtl-language-support, sticky-post, threaded-comments, translation-ready, wide-blocks, block-styles, style-variations, accessibility-ready, blog, portfolio, news
*/

/*
 * Link styles
 * https://github.com/WordPress/gutenberg/issues/42319
 */
a {
	text-decoration-thickness: 1px !important;
	text-underline-offset: .1em;
}

/* Focus styles */
:where(.wp-site-blocks *:focus) {
	outline-width: 2px;
	outline-style: solid;
}

/* Increase the bottom margin on submenus, so that the outline is visible. */
.wp-block-navigation .wp-block-navigation-submenu .wp-block-navigation-item:not(:last-child) {
	margin-bottom: 3px;
}

/* Increase the outline offset on the parent menu items, so that the outline does not touch the text. */
.wp-block-navigation .wp-block-navigation-item .wp-block-navigation-item__content {
	outline-offset: 4px;
}

/* Remove outline offset from the submenus, otherwise the outline is visible outside the submenu container. */
.wp-block-navigation .wp-block-navigation-item ul.wp-block-navigation__submenu-container .wp-block-navigation-item__content {
	outline-offset: 0;
}

/*
 * Progressive enhancement to reduce widows and orphans
 * https://github.com/WordPress/gutenberg/issues/55190
 */
h1,
h2,
h3,
h4,
h5,
h6,
blockquote,
caption,
figcaption,
p {
	text-wrap: pretty;
}

/*
 * Change the position of the more block on the front, by making it a block level element.
 * https://github.com/WordPress/gutenberg/issues/65934
*/
.more-link {
	display: block;
}



.container {
	max-width: 1200px;
	margin: 0 auto;
	background-color: white;
}

/* Header */
.header {
	background: linear-gradient(to bottom, #2c5f8b 0%, #1a4d73 50%, #0f3a5c 100%);
	color: white;
	padding: 10px 20px;
}

.header-top {
	display: flex;
	justify-content: space-between;
	align-items: flex-start;
	flex-wrap: wrap;
	gap: 20px;
}

.logo {
	display: flex;
	align-items: center;
	gap: 15px;
}

.logo-icon {
	width: 60px;
	height: 60px;
	background: linear-gradient(45deg, #4a90e2, #7b68ee);
	border-radius: 8px;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: bold;
}

.logo-text {
	font-size: 24px;
	font-weight: bold;
	line-height: 1.2;
}

.logo-subtitle {
	font-size: 12px;
	color: #b8d4f1;
	font-style: italic;
}

.header-right {
	text-align: right;
}

.top-nav {
	font-size: 12px;
	margin-bottom: 10px;
}

.top-nav a {
	color: white;
	text-decoration: none;
	margin: 0 5px;
}

.top-nav a:hover {
	text-decoration: underline;
}

.font-size-controls {
	margin: 10px 0;
	font-size: 12px;
}

.font-size-controls span {
	margin: 0 2px;
	cursor: pointer;
	padding: 2px 5px;
	border: 1px solid #ccc;
	background: white;
	color: #333;
}

.contact-info {
	font-size: 14px;
	font-weight: bold;
}

/* Main Navigation */
.main-nav {
	background: linear-gradient(to bottom, #e8e8e8, #d0d0d0);
	border-bottom: 2px solid #999;
}

.nav-menu {
	display: flex;
	list-style: none;
	overflow-x: auto;
}

.nav-menu li {
	flex: 1;
	min-width: 160px;
}

.nav-menu a {
	display: block;
	padding: 15px 10px;
	text-decoration: none;
	color: #333;
	font-size: 14px;
	font-weight: bold;
	text-align: center;
	border-right: 1px solid #999;
	transition: background-color 0.3s;
}

.nav-menu a:hover {
	background-color: #f0f0f0;
}

.nav-menu li:first-child a {
	background-color: #4a90e2;
	color: white;
}

/* Main Content */
.main-content {
	padding: 20px;
}

.hero-section {
	background: linear-gradient(135deg, #ff6b6b, #ffa726);
	color: white;
	padding: 40px 20px;
	text-align: center;
	border-radius: 8px;
	margin-bottom: 30px;
}

.hero-section h2 {
	font-size: 32px;
	margin-bottom: 20px;
}

.hero-section p {
	font-size: 16px;
	line-height: 1.8;
	margin-bottom: 10px;
}

/* Services Grid */
.services-grid {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(280px, 1fr));
	gap: 20px;
	margin-bottom: 30px;
}

.service-card {
	background: white;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 20px;
	text-align: center;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s;
}

.service-card:hover {
	transform: translateY(-2px);
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.15);
}

.service-icon {
	width: 60px;
	height: 60px;
	margin: 0 auto 15px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 24px;
	font-weight: bold;
	color: white;
}

.jver-icon {
	background: linear-gradient(45deg, #2196f3, #21cbf3);
}

.insurance-icon {
	background: linear-gradient(45deg, #4caf50, #8bc34a);
}

.forest-icon {
	background: linear-gradient(45deg, #795548, #8d6e63);
}

.service-title {
	font-size: 16px;
	font-weight: bold;
	margin-bottom: 10px;
	color: #333;
}

.service-description {
	font-size: 14px;
	color: #666;
	line-height: 1.6;
}

/* Carbon Offset Section */
.carbon-offset-section {
	display: grid;
	grid-template-columns: repeat(auto-fit, minmax(300px, 1fr));
	gap: 15px;
	margin-bottom: 30px;
}

.carbon-card {
	background: white;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 15px;
	display: flex;
	align-items: center;
	gap: 15px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.carbon-icon {
	width: 50px;
	height: 50px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 20px;
	color: white;
	flex-shrink: 0;
}

.wood-icon {
	background: linear-gradient(45deg, #4caf50, #66bb6a);
}

.board-icon {
	background: linear-gradient(45deg, #8bc34a, #aed581);
}

.sunforest-icon {
	background: linear-gradient(45deg, #ff9800, #ffb74d);
}

.carbon-content h3 {
	font-size: 14px;
	font-weight: bold;
	margin-bottom: 5px;
	color: #333;
}

.carbon-content p {
	font-size: 12px;
	color: #666;
}

/* Footer */
.footer {
	background: linear-gradient(to bottom, #2c5f8b, #1a4d73);
	color: white;
	padding: 20px;
	text-align: center;
}

.footer-content {
	font-size: 14px;
	line-height: 1.8;
}

.footer-links {
	margin-bottom: 15px;
}

.footer-links a {
	color: #b8d4f1;
	text-decoration: none;
	margin: 0 10px;
}

.footer-links a:hover {
	text-decoration: underline;
}

.copyright {
	font-size: 12px;
	color: #b8d4f1;
	margin-top: 10px;
}

/* Responsive Design */
@media (max-width: 768px) {
	.header-top {
		flex-direction: column;
		text-align: center;
	}

	.header-right {
		text-align: center;
	}

	.nav-menu {
		flex-direction: column;
	}

	.nav-menu li {
		min-width: auto;
	}

	.nav-menu a {
		border-right: none;
		border-bottom: 1px solid #999;
	}

	.hero-section h2 {
		font-size: 24px;
	}

	.hero-section p {
		font-size: 14px;
	}

	.services-grid {
		grid-template-columns: 1fr;
	}

	.carbon-offset-section {
		grid-template-columns: 1fr;
	}

	.carbon-card {
		flex-direction: column;
		text-align: center;
	}
}

@media (max-width: 480px) {
	.main-content {
		padding: 15px;
	}

	.hero-section {
		padding: 30px 15px;
	}

	.service-card {
		padding: 15px;
	}

	.logo-text {
		font-size: 18px;
	}

	.contact-info {
		font-size: 12px;
	}
}

/* Page Header */
.page-header {
	background: linear-gradient(45deg, #4a90e2, #357abd);
	padding: 20px;
	text-align: center;
	margin-bottom: 20px;
}

.page-title {
	color: white;
	font-size: 28px;
	font-weight: bold;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.3);
}

/* Main Content Layout */
.main-content {
	padding: 20px;
}

.content-wrapper {
	display: grid;
	grid-template-columns: 1fr 1fr;
	gap: 30px;
	align-items: start;
}

/* Image Section */
.image-section {
	display: flex;
	flex-direction: column;
	gap: 15px;
}

.main-image {
	width: 100%;
	border-radius: 8px;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.2);
}

.sub-images {
	display: grid;
	grid-template-columns: repeat(3, 1fr);
	gap: 10px;
}

.sub-image {
	width: 100%;
	aspect-ratio: 4/3;
	object-fit: cover;
	border-radius: 6px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s;
}

.sub-image:hover {
	transform: scale(1.05);
}

/* Content Section */
.content-section {
	padding: 0 20px;
}

.section-title {
	background: linear-gradient(45deg, #4a90e2, #357abd);
	color: white;
	padding: 10px 15px;
	margin: 20px 0 15px 0;
	border-radius: 5px;
	font-size: 16px;
	font-weight: bold;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.section-title:first-of-type {
	margin-top: 0;
}

.content-text {
	font-size: 14px;
	line-height: 1.8;
	color: #333;
	margin-bottom: 15px;
}

.info-row {
	display: flex;
	margin-bottom: 8px;
}

.info-label {
	font-weight: bold;
	color: #2c5f8b;
	min-width: 80px;
	margin-right: 20px;
}

.info-value {
	flex: 1;
}

.department-title {
	font-weight: bold;
	color: #2c5f8b;
	margin: 15px 0 8px 0;
	font-size: 15px;
}

.department-title:first-of-type {
	margin-top: 8px;
}

.department-content {
	margin-bottom: 15px;
	padding-left: 15px;
	border-left: 3px solid #4a90e2;
}

/* Breadcrumb */
.breadcrumb {
	background: #f8f9fa;
	padding: 10px 20px;
	border-bottom: 1px solid #ddd;
	font-size: 12px;
}

.breadcrumb a {
	color: #4a90e2;
	text-decoration: none;
}

.breadcrumb a:hover {
	text-decoration: underline;
}

/* Page Navigation */
.page-nav {
	text-align: right;
	padding: 20px;
	border-top: 1px solid #ddd;
}

.page-nav a {
	color: #4a90e2;
	text-decoration: none;
	font-size: 14px;
	margin-left: 20px;
}

.page-nav a:hover {
	text-decoration: underline;
}

/* Responsive Design */
@media (max-width: 768px) {

	/* 新規: コンテンツのレスポンシブ */
	.content-wrapper {
		grid-template-columns: 1fr;
		gap: 20px;
	}

	.sub-images {
		grid-template-columns: repeat(2, 1fr);
	}

	.content-section {
		padding: 0;
	}

	.page-title {
		font-size: 22px;
	}

	.info-row {
		flex-direction: column;
	}

	.info-label {
		min-width: auto;
		margin-right: 0;
		margin-bottom: 5px;
	}
}

@media (max-width: 480px) {

	/* 新規: 小画面でのコンテンツ */
	.page-header {
		padding: 15px;
	}

	.page-title {
		font-size: 20px;
	}

	.sub-images {
		grid-template-columns: 1fr;
	}

	.section-title {
		font-size: 14px;
		padding: 8px 12px;
	}

	.content-text {
		font-size: 13px;
	}
}

.wrapper {
	max-width: 1200px;
	margin: 0 auto;
	background-color: white;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
}

/* Header Info (Contact Bar) */
.wrapper-headerinfo {
	background-color: #666;
	color: white;
	position: relative;
	overflow: hidden;
	max-height: 0;
	transition: max-height 0.3s ease;
}

.wrapper-headerinfo.active {
	max-height: 200px;
}

.headerinfo {
	padding: 20px;
}

.headerinfo-contents {
	display: flex;
	gap: 20px;
	align-items: center;
}

.image_photo img {
	border-radius: 8px;
}

.address {
	flex: 1;
}

.headerinfo1 {
	font-size: 16px;
	font-weight: bold;
	color: #4CAF50;
}

.headerinfo2 {
	font-size: 14px;
	margin: 5px 0;
}

.headerinfo3 {
	font-size: 13px;
	line-height: 1.8;
}

.map {
	display: inline-block;
	background: #4CAF50;
	color: white;
	padding: 8px 15px;
	text-decoration: none;
	border-radius: 4px;
	margin-top: 10px;
	transition: background-color 0.3s;
}

.map:hover {
	background: #45a049;
}

/* Header Toggle */
.wrapper-header {
	background: #333;
	text-align: right;
	padding: 5px 20px;
}

.nav-info a {
	color: white;
	text-decoration: none;
	font-size: 12px;
	padding: 5px 10px;
	background: #555;
	border-radius: 3px;
	transition: background-color 0.3s;
}

.nav-info a:hover {
	background: #777;
}

/* Main Header */
header {
	position: relative;
}

/* Title */
.title-bar {
	background: linear-gradient(45deg, #2E7D32, #4CAF50);
	padding: 15px 20px;
	color: white;
	font-size: 20px;
	font-weight: bold;
	text-align: center;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.organization-name {
	float: right;
	font-size: 14px;
	font-weight: normal;
	color: #E8F5E8;
}

/* Slider */
.slider {
	position: relative;
	height: 300px;
	overflow: hidden;
}

.slides {
	display: flex;
	height: 100%;
	transition: transform 0.5s ease;
}

.slide {
	min-width: 100%;
	height: 100%;
}

.slide img {
	width: 100%;
	height: 100%;
	object-fit: cover;
}

.slider-arrows {
	position: absolute;
	top: 50%;
	width: 100%;
	display: flex;
	justify-content: space-between;
	padding: 0 20px;
	transform: translateY(-50%);
}

.slider-arrow {
	background: rgba(255, 255, 255, 0.8);
	border: none;
	width: 40px;
	height: 40px;
	border-radius: 50%;
	cursor: pointer;
	display: flex;
	align-items: center;
	justify-content: center;
	transition: background-color 0.3s;
}

.slider-arrow:hover {
	background: rgba(255, 255, 255, 1);
}

.slider-arrow--left::before {
	content: "❮";
	font-size: 18px;
}

.slider-arrow--right::before {
	content: "❯";
	font-size: 18px;
}

.slider-nav {
	position: absolute;
	bottom: 20px;
	left: 50%;
	transform: translateX(-50%);
	display: flex;
	gap: 10px;
}

.slider-nav__item {
	width: 12px;
	height: 12px;
	border-radius: 50%;
	background: rgba(255, 255, 255, 0.5);
	border: none;
	cursor: pointer;
	transition: background-color 0.3s;
}

.slider-nav__item--current,
.slider-nav__item:hover {
	background: white;
}

/* Navigation */
nav ul {
	list-style: none;
	display: flex;
	background: linear-gradient(to bottom, #f8f8f8, #e8e8e8);
	border-bottom: 2px solid #ccc;
}

nav li {
	flex: 1;
	border-right: 1px solid #ccc;
}

nav li:last-child {
	border-right: none;
}

nav a {
	display: block;
	padding: 15px 10px;
	text-decoration: none;
	color: #333;
	text-align: center;
	font-size: 13px;
	transition: background-color 0.3s;
}

nav a:hover {
	background: #ddd;
}

.fa {
	color: #4CAF50;
	margin-right: 5px;
}

/* Catchcopy */
.catchcopy {
	background: #4CAF50;
	padding: 20px;
	text-align: center;
	color: white;
	font-size: 24px;
	font-weight: bold;
}

/* Main Content Layout */
.main-layout {
	display: flex;
	gap: 20px;
	padding: 20px;
}

#contents {
	flex: 1;
}

#side_menu {
	width: 250px;
	flex-shrink: 0;
}

/* Content Styles */
h2 {
	background: linear-gradient(45deg, #2E7D32, #4CAF50);
	color: white;
	padding: 15px 20px;
	margin-bottom: 20px;
	font-size: 18px;
	border-radius: 5px;
}

.intro {
	background: #E8F5E8;
	padding: 20px;
	margin-bottom: 30px;
	border-left: 4px solid #4CAF50;
	font-size: 14px;
	line-height: 1.8;
}

/* Article Layout */
article {
	display: flex;
	gap: 30px;
}

#left_box {
	flex: 2;
}

#right_box {
	flex: 1;
}

/* Section Headers */
.headline {
	background: #2E7D32;
	color: white;
	padding: 12px 15px;
	display: block;
	border-radius: 5px;
	font-weight: bold;
	margin-bottom: 15px;
}

/* Tables */
table {
	width: 100%;
	margin-bottom: 30px;
}

table td {
	padding: 15px 0;
	vertical-align: top;
	font-size: 14px;
	line-height: 1.8;
}

.text_figure {
	text-align: center;
	padding: 20px 0;
}

.text_figure img {
	max-width: 100%;
	border: 1px solid #ddd;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.caption {
	text-align: center;
	font-weight: bold;
	color: #2E7D32;
	font-size: 13px;
	padding: 10px 0 5px 0;
}

.annotation {
	font-size: 11px;
	color: #666;
	line-height: 1.6;
	padding: 5px 0;
}

/* Photo Gallery */
.photo {
	margin-bottom: 15px;
}

.picture img {
	width: 100%;
	border-radius: 8px;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
	transition: transform 0.3s;
}

.picture img:hover {
	transform: scale(1.05);
}

/* Sidebar */
.sub_nav ul {
	list-style: none;
	margin-bottom: 20px;
}

.sub_nav li {
	border-bottom: 1px solid #ddd;
}

.sub_nav a {
	display: block;
	padding: 12px 15px;
	text-decoration: none;
	color: #333;
	background: #f8f8f8;
	transition: background-color 0.3s;
}

.sub_nav a:hover {
	background: #e8e8e8;
}

/* Banner Links */
#side_menu img {
	width: 100%;
	margin-bottom: 10px;
	border-radius: 4px;
	transition: opacity 0.3s;
}

#side_menu img:hover {
	opacity: 0.8;
}

.home {
	background: #4CAF50;
	text-align: center;
	border-radius: 8px;
	margin-top: 20px;
}

.home a {
	display: block;
	color: white;
	text-decoration: none;
	padding: 15px;
	font-weight: bold;
}

.home a:hover {
	background: rgba(255, 255, 255, 0.1);
	border-radius: 8px;
}

/* Footer */
footer {
	background: linear-gradient(to bottom, #2c5f8b, #1a4d73);
	color: white;
	padding: 20px;
	text-align: center;
}

footer nav ul {
	list-style: none;
	display: flex;
	justify-content: center;
	gap: 30px;
	margin-bottom: 15px;
	background: none;
	border: none;
}

footer nav li {
	border: none;
}

footer nav a {
	color: #b8d4f1;
	text-decoration: none;
	padding: 5px 0;
	background: none;
}

footer nav a:hover {
	text-decoration: underline;
	background: none;
}

.copy {
	font-size: 12px;
	color: #b8d4f1;
}

/* Responsive Design */
@media (max-width: 768px) {
	.wrapper {
		margin: 0;
	}

	.headerinfo-contents {
		flex-direction: column;
		text-align: center;
	}

	nav ul {
		flex-direction: column;
	}

	nav li {
		border-right: none;
		border-bottom: 1px solid #ccc;
	}

	.catchcopy {
		font-size: 18px;
		padding: 15px;
	}

	.main-layout {
		flex-direction: column;
		padding: 15px;
	}

	#side_menu {
		width: 100%;
		order: -1;
	}

	article {
		flex-direction: column;
		gap: 20px;
	}

	.slider {
		height: 200px;
	}

	h2 {
		font-size: 16px;
		padding: 12px 15px;
	}

	footer nav ul {
		flex-direction: column;
		gap: 10px;
	}
}

@media (max-width: 480px) {
	.title-bar {
		font-size: 16px;
		padding: 10px;
	}

	.organization-name {
		float: none;
		display: block;
		margin-top: 5px;
	}

	.catchcopy {
		font-size: 16px;
	}

	nav a {
		font-size: 12px;
		padding: 12px 8px;
	}

	.main-layout {
		padding: 10px;
	}

	.intro {
		padding: 15px;
		font-size: 13px;
	}

	h2 {
		font-size: 14px;
		padding: 10px 12px;
	}
}

/* Page Top Button */
.pagetop {
	position: fixed;
	bottom: 20px;
	right: 20px;
	display: none;
}

.pagetop a {
	display: block;
	width: 50px;
	height: 50px;
	background: #4CAF50;
	color: white;
	text-align: center;
	line-height: 50px;
	border-radius: 25px;
	text-decoration: none;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.3);
	transition: background-color 0.3s;
}

.pagetop a:hover {
	background: #45a049;
}

h2 {
	background: linear-gradient(45deg, #2E7D32, #4CAF50);
	color: white;
	padding: 15px 20px;
	margin-bottom: 20px;
	font-size: 18px;
	border-radius: 5px;
}

/* Support Information Card */
.support-info {
	background: #F1F8E9;
	border: 1px solid #4CAF50;
	border-radius: 8px;
	padding: 20px;
	margin-bottom: 30px;
}

.support-title {
	background: #2E7D32;
	color: white;
	padding: 10px 15px;
	margin: -20px -20px 15px -20px;
	border-radius: 8px 8px 0 0;
	font-size: 16px;
	font-weight: bold;
}

.update-date {
	color: #666;
	font-size: 12px;
	margin-bottom: 15px;
}

/* Support Details */
.support-section {
	margin-bottom: 20px;
}

.section-header {
	background: #4CAF50;
	color: white;
	padding: 8px 12px;
	font-weight: bold;
	margin-bottom: 10px;
	border-radius: 4px;
	display: inline-block;
}

.support-content {
	padding: 10px 0;
	line-height: 1.8;
}

.support-item {
	margin-bottom: 8px;
	padding-left: 15px;
	position: relative;
}

.support-item::before {
	content: "●";
	color: #4CAF50;
	position: absolute;
	left: 0;
}

.sub-item {
	margin-left: 20px;
	margin-bottom: 5px;
	padding-left: 15px;
	position: relative;
}

.sub-item::before {
	content: "・";
	color: #4CAF50;
	position: absolute;
	left: 0;
}

/* Requirements List */
.requirements-list {
	background: white;
	border: 1px solid #ddd;
	border-radius: 8px;
	padding: 20px;
	margin: 20px 0;
}

.requirement-item {
	display: flex;
	margin-bottom: 15px;
	align-items: flex-start;
}

.requirement-number {
	background: #4CAF50;
	color: white;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-size: 12px;
	font-weight: bold;
	margin-right: 15px;
	flex-shrink: 0;
}

.requirement-text {
	flex: 1;
	line-height: 1.7;
}

/* Amount Information */
.amount-info {
	background: #E3F2FD;
	border-left: 4px solid #2196F3;
	padding: 15px;
	margin: 15px 0;
	border-radius: 0 4px 4px 0;
}

.amount-label {
	font-weight: bold;
	color: #1976D2;
	margin-bottom: 5px;
}

/* Download Section */
.download-section {
	background: #FFF8E1;
	border: 1px solid #FFC107;
	border-radius: 8px;
	padding: 20px;
	margin: 30px 0;
}

.download-title {
	background: #FF8F00;
	color: white;
	padding: 10px 15px;
	margin: -20px -20px 15px -20px;
	border-radius: 8px 8px 0 0;
	font-size: 16px;
	font-weight: bold;
}

.download-list {
	list-style: none;
}

.download-item {
	margin-bottom: 10px;
	padding: 8px 15px;
	background: white;
	border: 1px solid #ddd;
	border-radius: 4px;
	transition: background-color 0.3s;
}

.download-item:hover {
	background: #f5f5f5;
}

.download-item a {
	text-decoration: none;
	color: #333;
	display: flex;
	align-items: center;
}

.download-item .fa {
	color: #FF8F00;
	margin-right: 10px;
}

/* Contact Section */
.contact-section {
	background: #E8F5E8;
	border: 1px solid #4CAF50;
	border-radius: 8px;
	padding: 20px;
	margin: 30px 0;
}

.contact-title {
	font-size: 16px;
	font-weight: bold;
	color: #2E7D32;
	margin-bottom: 15px;
}

.contact-info {
	line-height: 1.8;
}

.contact-info .fa {
	color: #4CAF50;
	width: 20px;
}

/* Certificate Banner */
.certificate-banner {
	background: linear-gradient(45deg, #2E7D32, #4CAF50);
	color: white;
	padding: 15px;
	text-align: center;
	font-weight: bold;
	border-radius: 8px;
	margin: 20px 0;
}

/* Note Box */
.note-box {
	background: #FFF3E0;
	border-left: 4px solid #FF9800;
	padding: 15px;
	margin: 15px 0;
	border-radius: 0 4px 4px 0;
}

.note-box strong {
	color: #E65100;
}

/* Responsive Design */
@media (max-width: 768px) {

	/* 新規: コンテンツのレスポンシブ */
	.support-info,
	.requirements-list,
	.download-section,
	.contact-section {
		margin-left: -5px;
		margin-right: -5px;
	}

	.requirement-item {
		flex-direction: column;
		gap: 10px;
	}

	.requirement-number {
		align-self: flex-start;
	}

	h2 {
		font-size: 16px;
		padding: 12px 15px;
	}
}

@media (max-width: 480px) {


	/* 新規: 小画面でのコンテンツ */
	.support-info,
	.download-section,
	.contact-section {
		padding: 15px;
	}

	.support-title,
	.download-title {
		margin: -15px -15px 10px -15px;
		padding: 8px 12px;
		font-size: 14px;
	}

	h2 {
		font-size: 14px;
		padding: 10px 12px;
	}
}

/* Hero Section */
.hero-section {
	background: linear-gradient(rgba(0, 0, 0, 0.4), rgba(0, 0, 0, 0.4)), url('https://images.unsplash.com/photo-1441974231531-c6227db76b6e?w=1200&h=300&fit=crop&crop=center');
	background-size: cover;
	background-position: center;
	height: 300px;
	display: flex;
	align-items: center;
	justify-content: center;
	text-align: center;
	color: white;
}

.hero-title {
	font-size: 48px;
	font-weight: bold;
	text-shadow: 2px 2px 4px rgba(0, 0, 0, 0.7);
}

/* Notification Bar */
.notification-bar {
	background: #E3F2FD;
	border: 1px solid #2196F3;
	padding: 15px 20px;
	margin: 20px;
	border-radius: 8px;
	text-align: center;
}

.notification-link {
	color: #1976D2;
	text-decoration: none;
	font-weight: bold;
}

.notification-link:hover {
	text-decoration: underline;
}

/* Services Grid */
.services-container {
	padding: 40px 20px;
}

.services-grid {
	display: grid;
	grid-template-columns: repeat(4, 1fr);
	gap: 20px;
	max-width: 1000px;
	margin: 0 auto;
}

.service-card {
	background: white;
	border: 1px solid #ddd;
	border-radius: 12px;
	padding: 20px;
	text-align: center;
	box-shadow: 0 4px 8px rgba(0, 0, 0, 0.1);
	transition: all 0.3s ease;
	cursor: pointer;
	min-height: 200px;
	display: flex;
	flex-direction: column;
	justify-content: center;
	position: relative;
	overflow: hidden;
}

.service-card:hover {
	transform: translateY(-5px);
	box-shadow: 0 8px 16px rgba(0, 0, 0, 0.15);
}

.service-card.carbon-offset {
	background: linear-gradient(135deg, #E3F2FD, #BBDEFB);
	border-color: #2196F3;
}

.service-card.forest-insurance {
	background: linear-gradient(135deg, #E8F5E8, #C8E6C9);
	border-color: #4CAF50;
}

.service-card.biomass {
	background: linear-gradient(135deg, #E8F5E8, #C8E6C9);
	border-color: #4CAF50;
}

.service-card.solar {
	background: linear-gradient(135deg, #FFF8E1, #FFECB3);
	border-color: #FF9800;
}

.service-card.clt {
	background: linear-gradient(135deg, #F3E5F5, #E1BEE7);
	border-color: #9C27B0;
}

.service-card.grant {
	background: linear-gradient(135deg, #E8F5E8, #C8E6C9);
	border-color: #4CAF50;
}

.service-card.support-center {
	background: linear-gradient(135deg, #E8F5E8, #C8E6C9);
	border-color: #4CAF50;
}

.service-card.catalog {
	background: linear-gradient(135deg, #FFF8E1, #FFECB3);
	border-color: #FF9800;
}

.service-card.facebook {
	background: linear-gradient(135deg, #E3F2FD, #BBDEFB);
	border-color: #1976D2;
}

.service-card.pamphlet {
	background: linear-gradient(135deg, #E8F5E8, #C8E6C9);
	border-color: #4CAF50;
}

.service-title {
	font-size: 18px;
	font-weight: bold;
	margin-bottom: 10px;
	color: #333;
}

.service-subtitle {
	font-size: 14px;
	color: #666;
	line-height: 1.4;
}

.service-icon {
	font-size: 36px;
	margin-bottom: 15px;
	opacity: 0.8;
}

.carbon-offset .service-icon {
	color: #2196F3;
}

.forest-insurance .service-icon {
	color: #4CAF50;
}

.biomass .service-icon {
	color: #4CAF50;
}

.solar .service-icon {
	color: #FF9800;
}

.clt .service-icon {
	color: #9C27B0;
}

.grant .service-icon {
	color: #4CAF50;
}

.support-center .service-icon {
	color: #4CAF50;
}

.catalog .service-icon {
	color: #FF9800;
}

.facebook .service-icon {
	color: #1976D2;
}

.pamphlet .service-icon {
	color: #4CAF50;
}

/* Special styling for specific cards */
.service-card.facebook::before {
	content: "🌐";
	position: absolute;
	top: 10px;
	right: 10px;
	font-size: 20px;
}

.service-card.pamphlet::before {
	content: "📄";
	position: absolute;
	top: 10px;
	right: 10px;
	font-size: 20px;
}

/* Bottom Section */
.bottom-section {
	padding: 40px 20px;
	text-align: center;
}

.page-nav {
	margin-bottom: 30px;
}

.page-nav a {
	display: inline-block;
	margin: 0 10px;
	padding: 10px 20px;
	background: #4CAF50;
	color: white;
	text-decoration: none;
	border-radius: 5px;
	transition: background-color 0.3s;
}

.page-nav a:hover {
	background: #45a049;
}

.contact-info {
	background: #f8f9fa;
	padding: 20px;
	border-radius: 8px;
	margin: 20px auto;
	max-width: 800px;
	line-height: 1.8;
}

/* Responsive Design */
@media (max-width: 1024px) {
	.services-grid {
		grid-template-columns: repeat(3, 1fr);
		gap: 15px;
	}

	.hero-title {
		font-size: 36px;
	}
}

@media (max-width: 768px) {
	.wrapper {
		margin: 0;
	}

	.services-grid {
		grid-template-columns: repeat(2, 1fr);
		gap: 15px;
		padding: 0 10px;
	}

	.service-card {
		min-height: 150px;
		padding: 15px;
	}

	.service-title {
		font-size: 16px;
	}

	.service-subtitle {
		font-size: 13px;
	}

	.service-icon {
		font-size: 28px;
		margin-bottom: 10px;
	}

	.hero-title {
		font-size: 28px;
	}

	.services-container {
		padding: 30px 10px;
	}

	.notification-bar {
		margin: 15px 10px;
		padding: 12px 15px;
	}
}

@media (max-width: 480px) {
	.services-grid {
		grid-template-columns: 1fr;
		gap: 12px;
	}

	.service-card {
		min-height: 120px;
		padding: 12px;
	}

	.service-title {
		font-size: 14px;
	}

	.service-subtitle {
		font-size: 12px;
	}

	.service-icon {
		font-size: 24px;
		margin-bottom: 8px;
	}

	.hero-title {
		font-size: 24px;
		padding: 0 20px;
	}

	.hero-section {
		height: 200px;
	}

	.services-container {
		padding: 20px 10px;
	}

	.page-nav a {
		display: block;
		margin: 10px 0;
	}
}

/* ==================== 
		           新規追加スタイル（ryokkaページ専用）
		           ==================== */

#wrapper {
	max-width: 1000px;
	margin: 0 auto;
	background-color: white;
	box-shadow: 0 0 10px rgba(0, 0, 0, 0.1);
	min-height: 100vh;
}

/* Header */
#header {
	background: linear-gradient(to bottom, #f8f8f8, #e8e8e8);
	border-bottom: 2px solid #ddd;
	padding: 20px;
}

#header_in {
	display: flex;
	justify-content: space-between;
	align-items: center;
}

#header_in_left img {
	max-width: 100%;
	height: auto;
}

/* Page Body */
#pagebody {
	padding: 0;
}

#contents {
	padding: 20px 30px;
}

/* Main Title */
h2 {
	background: linear-gradient(45deg, #4CAF50, #66BB6A);
	color: white;
	padding: 20px;
	margin: 20px 0;
	font-size: 24px;
	font-weight: bold;
	border-radius: 8px;
	text-align: center;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

/* Status Notice */
h4 {
	background: linear-gradient(45deg, #5C6BC0, #7986CB);
	color: white;
	padding: 15px 20px;
	margin: 20px 0;
	font-size: 16px;
	font-weight: bold;
	border-radius: 8px;
	text-align: center;
}

/* Content Paragraphs */
p {
	margin: 15px 0;
	line-height: 1.8;
	font-size: 14px;
}

/* Information Table */
.table03 {
	width: 100%;
	border-collapse: collapse;
	margin: 20px 0;
	box-shadow: 0 2px 4px rgba(0, 0, 0, 0.1);
}

.table03 th {
	background: linear-gradient(to bottom, #4CAF50, #45a049);
	color: white;
	padding: 12px 15px;
	font-weight: bold;
	text-align: center;
	border: 1px solid #45a049;
}

.table03 td {
	padding: 15px;
	border: 1px solid #ddd;
	vertical-align: top;
	background: white;
}

.table03 td:first-child {
	background: #f8f9fa;
	font-weight: bold;
	width: 30%;
}

/* Section Dividers */
hr {
	border: none;
	height: 2px;
	background: linear-gradient(to right, #4CAF50, #66BB6A);
	margin: 30px 0;
	border-radius: 1px;
}

/* Section Headers */
.section-header {
	font-size: 18px;
	font-weight: bold;
	color: #2E7D32;
	margin: 30px 0 20px 0;
	padding: 10px 0;
	border-bottom: 2px solid #4CAF50;
}

/* Document Lists */
.document-list {
	margin: 20px 0;
}

.document-list p {
	margin: 8px 0;
	padding: 10px 15px;
	background: #f8f9fa;
	border-left: 4px solid #4CAF50;
	border-radius: 0 4px 4px 0;
}

.document-list a {
	color: #1976D2;
	text-decoration: none;
	font-weight: bold;
}

.document-list a:hover {
	text-decoration: underline;
	color: #1565C0;
}

/* Download Links Styling */
a[href$=".pdf"]::before {
	content: "📄 ";
	margin-right: 5px;
}

a[href$=".xlsx"]::before,
a[href$=".xls"]::before {
	content: "📊 ";
	margin-right: 5px;
}

a[href$=".docx"]::before,
a[href$=".doc"]::before {
	content: "📝 ";
	margin-right: 5px;
}

/* External Link */
.external-link {
	background: #E3F2FD;
	border: 1px solid #2196F3;
	border-radius: 8px;
	padding: 15px;
	margin: 20px 0;
}

.external-link a {
	color: #1976D2;
	font-weight: bold;
	text-decoration: none;
}

.external-link a:hover {
	text-decoration: underline;
}

/* Footer */
#footer {
	background: linear-gradient(to bottom, #4CAF50, #45a049);
	color: white;
	padding: 30px 0;
	margin-top: 40px;
}

#footer_in {
	display: flex;
	justify-content: space-between;
	align-items: center;
	max-width: 940px;
	margin: 0 auto;
	padding: 0 20px;
}

#footer_in_left img {
	max-width: 100%;
	height: auto;
	opacity: 0.9;
}

#footer_in_bottom {
	background: #2E7D32;
	padding: 15px 0;
	text-align: center;
}

.copyright {
	color: #E8F5E8;
	font-size: 12px;
}

/* Special Sections */
.important-note {
	background: #FFF3E0;
	border-left: 4px solid #FF9800;
	padding: 15px;
	margin: 20px 0;
	border-radius: 0 4px 4px 0;
}

.usage-examples {
	background: #F3E5F5;
	border-left: 4px solid #9C27B0;
	padding: 15px;
	margin: 20px 0;
	border-radius: 0 4px 4px 0;
}

/* Numbered Lists */
.numbered-section {
	counter-reset: section-counter;
	margin: 20px 0;
}

.numbered-item {
	counter-increment: section-counter;
	margin: 10px 0;
	padding: 12px 15px;
	background: #f8f9fa;
	border-radius: 4px;
	position: relative;
	padding-left: 50px;
}

.numbered-item::before {
	content: counter(section-counter);
	position: absolute;
	left: 15px;
	top: 12px;
	background: #4CAF50;
	color: white;
	width: 24px;
	height: 24px;
	border-radius: 50%;
	display: flex;
	align-items: center;
	justify-content: center;
	font-weight: bold;
	font-size: 12px;
}

/* Sub-sections */
.sub-section {
	margin-left: 20px;
	margin-top: 15px;
}

.sub-section p {
	margin: 5px 0;
	font-size: 13px;
}

/* Responsive Design */
@media (max-width: 768px) {
	#wrapper {
		margin: 0;
	}

	#contents {
		padding: 15px 20px;
	}

	h2 {
		font-size: 20px;
		padding: 15px;
	}

	h4 {
		font-size: 14px;
		padding: 12px 15px;
	}

	.table03 {
		font-size: 13px;
	}

	.table03 th,
	.table03 td {
		padding: 10px;
	}

	#footer_in {
		flex-direction: column;
		gap: 20px;
		text-align: center;
	}

	.document-list p {
		padding: 8px 12px;
	}
}

@media (max-width: 480px) {
	#contents {
		padding: 10px 15px;
	}

	h2 {
		font-size: 18px;
		padding: 12px;
	}

	.table03 {
		font-size: 12px;
	}

	.table03 th,
	.table03 td {
		padding: 8px;
	}

	.numbered-item {
		padding-left: 40px;
		font-size: 13px;
	}

	.numbered-item::before {
		width: 20px;
		height: 20px;
		font-size: 11px;
	}
}