/* =================================================================
   Gutenberg alignment override
   ブロックエディタの配置機能がテーマCSSに上書きされないようにする
   ================================================================= */
.wp-block-buttons.has-text-align-left { justify-content: flex-start !important; }
.wp-block-buttons.has-text-align-center { justify-content: center !important; }
.wp-block-buttons.has-text-align-right { justify-content: flex-end !important; }
.has-text-align-left { text-align: left !important; }
.has-text-align-center { text-align: center !important; }
.has-text-align-right { text-align: right !important; }

/* =================================================================
   parts.css - 下層テンプレート共通パーツ
   ================================================================= */

/* ===== お知らせ共通（TOP・news_list共用） ===== */
.tmpl_news_list {
    max-width: 900px;
    margin: 0 auto;
}

.tmpl_news_item {
    display: flex;
    align-items: center;
    padding: 25px 0;
    border-bottom: 1px solid #e0e0e0;
}

.tmpl_news_date {
    min-width: 110px;
    color: #002060;
    font-weight: 500;
    font-size: 16px;
}

.tmpl_news_category {
    display: inline-block;
    min-width: 80px;
    padding: 4px 12px;
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    color: white;
    background-color: #002060;
}

.tmpl_news_title {
    flex: 1;
    margin-left: 25px;
    font-size: 16px;
    font-weight: 500;
    color: #333;
}

/* ===== お知らせ一覧ページ ===== */
.tmpl_news_section {
    background-color: #fff;
}

.tmpl_news_container {
    max-width: 900px;
    margin: 0 auto;
}

.tmpl_year_divider {
    font-size: 20px;
    font-weight: 500;
    color: #002060;
    padding: 30px 0 15px;
    border-bottom: 2px solid #002060;
    margin-top: 20px;
    font-family: 'Noto Serif JP', serif;
}

.tmpl_year_divider:first-child {
    margin-top: 0;
}

/* ===== 記事詳細（news_detail） ===== */
.tmpl_article_detail {
    background-color: #fff;
}

.tmpl_article_container {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_article_header {
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 1px solid #e0e0e0;
}

.tmpl_article_meta {
    display: flex;
    align-items: center;
    margin-bottom: 20px;
    gap: 15px;
}

.tmpl_article_date {
    color: #002060;
    font-weight: 500;
    font-size: 16px;
}

.tmpl_article_category {
    display: inline-block;
    padding: 6px 15px;
    text-align: center;
    font-size: 13px;
    font-weight: 500;
    color: white;
    background-color: #e74c3c;
}

.tmpl_article_title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    font-family: 'Noto Serif JP', serif;
    line-height: 1.4;
}

.tmpl_article_content {
    font-size: 16px;
    line-height: 1.8;
}

.tmpl_article_content p {
    margin-bottom: 20px;
}

.tmpl_article_content h2 {
    font-size: 24px;
    color: #333;
    margin: 40px 0 20px 0;
    font-family: 'Noto Serif JP', serif;
    border-bottom: 2px solid #002060;
    padding-bottom: 10px;
}

.tmpl_article_content h3 {
    font-size: 20px;
    color: #333;
    margin: 30px 0 15px 0;
    font-family: 'Noto Serif JP', serif;
}

.tmpl_article_content h4 {
    font-size: 18px;
    color: #333;
    margin: 25px 0 12px 0;
    font-weight: 500;
}

.tmpl_article_content ul,
.tmpl_article_content ol {
    margin: 20px 0;
    padding-left: 30px;
}

.tmpl_article_content li {
    margin-bottom: 8px;
}

.tmpl_article_image {
    width: 100%;
    height: 300px;
    background-color: #e0e0e0;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #777;
    font-weight: 500;
    margin: 30px 0;
    border-radius: 4px;
}

/* ===== 製品詳細共通（pro_detail_*） ===== */
.tmpl_product_detail {
    background-color: #fff;
}

.tmpl_product_container {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_product_header {
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 1px solid #e0e0e0;
}

.tmpl_product_title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    font-family: 'Noto Serif JP', serif;
    line-height: 1.4;
    margin-bottom: 15px;
}

.tmpl_product_summary {
    font-size: 16px;
    color: #666;
    line-height: 1.7;
}

.tmpl_product_content {
    font-size: 16px;
    line-height: 1.8;
}

.tmpl_product_content p {
    margin-bottom: 20px;
}

.tmpl_product_content h2 {
    font-size: 24px;
    color: #333;
    margin: 40px 0 20px 0;
    font-family: 'Noto Serif JP', serif;
    border-bottom: 2px solid #002060;
    padding-bottom: 10px;
}

.tmpl_product_content h3 {
    font-size: 20px;
    color: #333;
    margin: 30px 0 15px 0;
    font-family: 'Noto Serif JP', serif;
}

.tmpl_product_content ul {
    margin: 20px 0;
    padding-left: 30px;
}

.tmpl_product_content li {
    margin-bottom: 10px;
}

.tmpl_product_image {
    width: 100%;
    max-width: 100%;
    height: auto;
    display: block;
    margin: 20px 0;
    border-radius: 4px;
}

.tmpl_product_content > .tmpl_product_image {
    max-width: 70%;
    margin: 20px auto;
}

.tmpl_image_caption {
    text-align: center;
    font-size: 14px;
    color: #666;
    margin-top: -10px;
    margin-bottom: 30px;
}

.tmpl_feature_list {
    background-color: #f8f9fa;
    padding: 25px 30px;
    border-radius: 8px;
    margin: 25px 0;
}

.tmpl_feature_list ul {
    margin: 0;
}

.tmpl_feature_list li {
    position: relative;
    padding-left: 10px;
}

.tmpl_image_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 20px;
    margin: 20px 0;
}

.tmpl_image_grid.cols-3 {
    grid-template-columns: repeat(3, 1fr);
}

.tmpl_image_grid .tmpl_product_image {
    margin: 0;
    max-width: 100%;
}

.tmpl_video_wrapper {
    position: relative;
    width: 70%;
    padding-bottom: 39.375%;
    margin: 20px auto 5px;
}

.tmpl_video_wrapper iframe {
    position: absolute;
    top: 0;
    left: 0;
    width: 100%;
    height: 100%;
    border: none;
    border-radius: 4px;
}

.tmpl_media_caption {
    font-size: 14px;
    color: #666;
    margin-bottom: 25px;
    text-align: center;
}

.tmpl_highlight_box {
    background-color: #f8f9fa;
    border-left: 4px solid #002060;
    padding: 20px 25px;
    margin: 25px 0;
}

.tmpl_highlight_box p {
    margin-bottom: 0;
}

.tmpl_product_gallery {
    display: flex;
    gap: 12px;
    margin: 30px 0;
    flex-wrap: wrap;
}

.tmpl_product_gallery img {
    flex: 1 1 calc(33.333% - 8px);
    max-width: calc(33.333% - 8px);
    height: auto;
    border-radius: 4px;
    object-fit: cover;
}

/* ===== 橋梁土工化 写真レイアウト ===== */
.tmpl_photo_pair {
    display: flex;
    gap: 20px;
    margin: 30px 0;
}

.tmpl_photo_pair .tmpl_photo_item {
    flex: 1;
}

.tmpl_photo_pair .tmpl_photo_item img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.tmpl_photo_caption {
    text-align: center;
    font-size: 13px;
    color: #666;
    margin-top: 8px;
}

.tmpl_photo_single {
    margin: 30px 0;
}

.tmpl_photo_single img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.tmpl_photo_row {
    display: flex;
    gap: 15px;
    margin: 20px 0 30px;
}

.tmpl_photo_row .tmpl_photo_item {
    flex: 1;
}

.tmpl_photo_row .tmpl_photo_item img {
    width: 100%;
    height: auto;
    display: block;
    border-radius: 4px;
}

.tmpl_citation_box {
    background-color: #f8f9fa;
    border: 1px solid #e0e0e0;
    padding: 15px 20px;
    margin: 30px 0 20px;
    font-size: 14px;
    color: #555;
    line-height: 1.6;
}

.tmpl_diagram_section {
    margin: 30px 0;
    border: 1px solid #e0e0e0;
    border-radius: 4px;
}

.tmpl_diagram_section img {
    width: 100%;
    height: auto;
    display: block;
    background-color: #fff;
}

.tmpl_diagram_caption {
    padding: 12px 16px;
    background-color: #f8f9fa;
    font-size: 14px;
    color: #555;
    border-top: 1px solid #e0e0e0;
}

.tmpl_diagram_caption a {
    color: #002060;
    text-decoration: underline;
    font-size: 13px;
}

.tmpl_diagram_row {
    display: flex;
    gap: 15px;
    margin: 30px 0;
    align-items: stretch;
}

.tmpl_diagram_row .tmpl_diagram_section {
    flex: 1;
    margin: 0;
    display: flex;
    flex-direction: column;
}

.tmpl_diagram_row .tmpl_diagram_section img {
    flex: 1;
    object-fit: contain;
    background-color: #fff;
}

.tmpl_diagram_row .tmpl_diagram_caption {
    margin-top: auto;
}

.tmpl_placeholder_img {
    width: 100%;
    min-height: 150px;
    background-color: #e8e8e8;
    border-radius: 4px;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    font-size: 13px;
}

/* ===== プレキャスト床版 縦長写真レイアウト ===== */
.tmpl_image_grid_portrait {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 16px;
    margin: 30px 0;
}

.tmpl_image_grid_portrait .tmpl_photo_item {
    text-align: center;
}

.tmpl_image_grid_portrait .tmpl_photo_item img {
    width: 100%;
    max-width: 200px;
    height: auto;
    border-radius: 4px;
    margin: 0 auto;
    display: block;
}

.tmpl_image_grid_portrait .tmpl_photo_item .tmpl_photo_caption {
    font-size: 13px;
    color: #666;
    margin-top: 8px;
}

.tmpl_photo_single_portrait {
    text-align: center;
    margin: 30px 0;
}

.tmpl_photo_single_portrait img {
    width: 100%;
    max-width: 200px;
    height: auto;
    border-radius: 4px;
    margin: 0 auto;
    display: block;
}

.tmpl_photo_single_portrait .tmpl_photo_caption {
    font-size: 13px;
    color: #666;
    margin-top: 8px;
}

/* ===== 開発工法一覧（pro_list） ===== */
.tmpl_products_section {
    background-color: #fff;
}

.tmpl_products_intro {
    text-align: center;
    margin-bottom: 60px;
}

.tmpl_products_intro p {
    font-size: 16px;
    color: #666;
    max-width: 800px;
    margin: 0 auto;
    line-height: 1.8;
}

.tmpl_products_grid {
    display: grid;
    grid-template-columns: repeat(2, 1fr);
    gap: 40px;
    margin-bottom: 60px;
}

/* wp:columnsブロックを使う場合のレイアウト調整 */
.tmpl_products_grid.wp-block-columns {
    display: flex;
    flex-wrap: wrap;
    align-items: stretch;
    gap: 40px;
}
.tmpl_products_grid.wp-block-columns > .wp-block-column {
    flex: 1 1 calc(50% - 20px);
    display: flex;
    flex-direction: column;
}
.tmpl_products_grid.wp-block-columns > .wp-block-column > .tmpl_product_card {
    flex: 1;
}

.tmpl_product_card {
    background: white;
    border-radius: 8px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
    transition: all 0.3s ease;
    border: 1px solid #e0e0e0;
    display: flex;
    flex-direction: column;
    height: 100%;
}

.tmpl_product_card:hover {
    transform: translateY(-5px);
    box-shadow: 0 15px 40px rgba(0, 0, 0, 0.15);
}

.tmpl_product_card .tmpl_product_image {
    width: 100%;
    height: 200px;
    background-color: #f5f5f5;
    display: flex;
    align-items: center;
    justify-content: center;
    color: #999;
    font-size: 14px;
    font-weight: 500;
    border-bottom: 1px solid #e0e0e0;
    object-fit: cover;
    margin: 0;
    max-width: 100%;
    border-radius: 0;
    flex-shrink: 0;
}

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

.tmpl_product_card .tmpl_product_content {
    padding: 30px;
    display: flex;
    flex-direction: column;
    flex: 1;
}

.tmpl_product_card .tmpl_product_title {
    font-size: 20px;
    margin-bottom: 12px;
}

.tmpl_product_description {
    font-size: 14px;
    color: #666;
    line-height: 1.7;
    margin-bottom: 20px;
    flex: 1;
}

.tmpl_product_actions {
    display: flex;
    gap: 15px;
    flex-wrap: wrap;
    margin-top: auto;
}

.tmpl_product_button {
    padding: 10px 20px;
    font-size: 14px;
    border-radius: 4px;
    transition: all 0.3s ease;
    text-align: center;
}

.tmpl_primary_button {
    background: #002060;
    color: white;
}

.tmpl_primary_button:hover {
    background: #001040;
    color: white;
}

.tmpl_cta_section {
    background: linear-gradient(135deg, #002060 0%, #1565c0 100%);
    color: white;
    text-align: center;
}

.tmpl_cta_section h2 {
    font-size: 32px;
    margin-bottom: 20px;
    font-family: 'Noto Serif JP', serif;
}

.tmpl_cta_section p {
    font-size: 18px;
    margin-bottom: 35px;
    opacity: 0.9;
    line-height: 1.7;
}

.tmpl_cta_button {
    background: white;
    color: #002060;
    padding: 18px 40px;
    font-size: 18px;
    font-weight: 500;
    border-radius: 4px;
    transition: all 0.3s ease;
    display: inline-block;
}

.tmpl_cta_button:hover {
    background: #f0f0f0;
    color: #001040;
}

/* ===== 会員企業（members） ===== */
.tmpl_members_list {
    background-color: #f8f8f8;
}

.tmpl_members_grid {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
}

.tmpl_member_card {
    background-color: #fff;
    padding: 30px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
    transition: all 0.3s ease;
}

.tmpl_member_card:hover {
    transform: translateY(-5px);
    box-shadow: 0 8px 20px rgba(0, 0, 0, 0.1);
}

.tmpl_member_logo {
    width: 100%;
    height: 140px;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    padding: 15px;
    background-color: #fafafa;
}

.tmpl_member_logo img {
    max-width: 100%;
    max-height: 100%;
    object-fit: contain;
}

.tmpl_member_logo_placeholder {
    width: 100%;
    height: 100px;
    background-color: #f0f0f0;
    display: flex;
    align-items: center;
    justify-content: center;
    margin-bottom: 20px;
    color: #999;
    font-size: 12px;
}

.tmpl_member_name {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    margin-bottom: 15px;
    font-family: 'Noto Serif JP', serif;
    border-bottom: 1px solid #eee;
    padding-bottom: 10px;
}

.tmpl_member_name a {
    color: #333;
    text-decoration: none;
}

.tmpl_member_name a:hover {
    color: #002060;
}

.tmpl_member_info {
    font-size: 13px;
    color: #666;
    line-height: 1.8;
}

.tmpl_member_info p {
    margin-bottom: 5px;
}

.tmpl_member_info .label {
    color: #999;
    margin-right: 5px;
}

.tmpl_member_url {
    margin-top: 10px;
    padding-top: 10px;
    border-top: 1px solid #eee;
}

.tmpl_member_url a {
    color: #002060;
    font-size: 12px;
    word-break: break-all;
    text-decoration: none;
}

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

/* ===== 会員企業募集 ===== */
.tmpl_recruitment {
    background-color: #e6ebf5;
    text-align: center;
}

.tmpl_recruitment_content {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_recruitment_text {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 30px;
    color: #666;
}

.tmpl_recruitment_benefits {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 30px;
    margin: 40px 0;
}

.tmpl_benefit_item {
    background-color: #fff;
    padding: 30px 20px;
    border-radius: 8px;
    box-shadow: 0 2px 10px rgba(0, 0, 0, 0.05);
}

.tmpl_benefit_icon {
    width: 60px;
    height: 60px;
    margin: 0 auto 20px;
}

.tmpl_benefit_icon svg {
    width: 100%;
    height: 100%;
}

.tmpl_benefit_title {
    font-size: 16px;
    font-weight: 500;
    color: #333;
    margin-bottom: 10px;
}

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

.tmpl_recruitment_cta {
    margin-top: 40px;
}

.tmpl_recruitment_note {
    font-size: 14px;
    color: #999;
    margin-top: 20px;
}

/* ===== 研究会について（about） ===== */
.tmpl_overview {
    background-color: #f8f8f8;
}

.tmpl_overview_content {
    display: flex;
    align-items: flex-start;
    gap: 70px;
}

.tmpl_overview_text {
    flex: 1;
}

.tmpl_overview_text p {
    font-size: 16px;
    line-height: 1.8;
    margin-bottom: 20px;
}

.tmpl_overview_signature {
    text-align: right;
    font-size: 15px;
    color: #333;
    margin-top: 30px;
    font-weight: 500;
}

.tmpl_overview_three_photos {
    display: grid;
    grid-template-columns: repeat(3, 1fr);
    gap: 15px;
    margin-top: 25px;
}

.tmpl_overview_three_photos img {
    width: 100%;
    height: auto;
    display: block;
    aspect-ratio: 4 / 3;
    object-fit: cover;
    border-radius: 4px;
}

.tmpl_overview_images {
    flex: 0 0 40%;
    display: flex;
    flex-direction: column;
    gap: 10px;
}

.tmpl_overview_images img {
    width: 100%;
    height: auto;
    display: block;
}

/* 学会発表 */
.tmpl_publications {
    background-color: #fff;
}

.tmpl_publication_list {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_publication_item {
    padding: 20px 25px;
    background-color: #f8f8f8;
    margin-bottom: 15px;
    border-left: 3px solid #002060;
}

.tmpl_publication_item h4 {
    font-size: 16px;
    color: #333;
    font-weight: 500;
}

.tmpl_publication_item_desc {
    margin-top: 10px;
    font-size: 15px;
    line-height: 1.7;
}

/* 沿革 */
.tmpl_history {
    background-color: #f8f8f8;
}

.tmpl_history_list {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_history_item {
    display: flex;
    align-items: center;
    margin-bottom: 30px;
    padding-bottom: 30px;
    border-bottom: 1px solid #e0e0e0;
}

.tmpl_history_item:last-child {
    border-bottom: none;
    margin-bottom: 0;
    padding-bottom: 0;
}

.tmpl_history_year {
    min-width: 100px;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    background-color: #002060;
    padding: 8px 15px;
    text-align: center;
    margin-right: 30px;
    flex-shrink: 0;
}

.tmpl_history_content h3 {
    font-size: 18px;
    color: #333;
    font-weight: 500;
    font-family: 'Noto Serif JP', serif;
}

/* 組織体制 */
.tmpl_organization {
    background-color: #fff;
}

.tmpl_org_chart {
    max-width: 900px;
    margin: 0 auto;
}

.tmpl_org_chart_note {
    margin-top: 50px;
    font-size: 15px;
    color: #666;
    line-height: 1.7;
    text-align: center;
}

/* お問い合わせCTA（about等） */
.tmpl_contact_cta {
    background-color: #e6ebf5;
    text-align: center;
}

.tmpl_contact_cta p {
    font-size: 17px;
    max-width: 700px;
    margin: 0 auto 35px;
    line-height: 1.7;
}

/* ===== お問い合わせフォーム（contact） ===== */
.tmpl_form_container {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_form_intro {
    text-align: center;
    margin-bottom: 50px;
}

.tmpl_form_intro h2 {
    font-size: 32px;
    color: #333;
    margin-bottom: 20px;
    font-family: 'Noto Serif JP', serif;
}

.tmpl_form_intro p {
    font-size: 16px;
    color: #666;
    line-height: 1.8;
}

.tmpl_notice_box {
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    border-radius: 6px;
    padding: 18px 24px;
    margin-bottom: 35px;
}

.tmpl_notice_box p {
    color: #991b1b;
    font-size: 14px;
    line-height: 1.7;
    margin: 0;
}

.tmpl_notice_box a {
    color: #991b1b;
    text-decoration: underline;
}

.tmpl_contact_form {
    background: white;
    padding: 50px;
    border-radius: 8px;
    box-shadow: 0 8px 30px rgba(0, 0, 0, 0.1);
}

.tmpl_form_row {
    margin-bottom: 30px;
}

.tmpl_form_row.half {
    display: grid;
    grid-template-columns: 1fr 1fr;
    gap: 20px;
}

.tmpl_form_group label {
    display: block;
    margin-bottom: 8px;
    font-weight: 500;
    color: #333;
    font-size: 15px;
}

.tmpl_required {
    color: #e53e3e;
    margin-left: 4px;
}

.tmpl_form_group input,
.tmpl_form_group select,
.tmpl_form_group textarea {
    width: 100%;
    padding: 15px;
    border: 2px solid #e0e0e0;
    border-radius: 4px;
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    transition: all 0.3s ease;
    background-color: #fff;
}

.tmpl_form_group input:focus,
.tmpl_form_group select:focus,
.tmpl_form_group textarea:focus {
    outline: none;
    border-color: #002060;
    box-shadow: 0 0 0 3px rgba(0, 32, 96, 0.1);
}

.tmpl_form_group textarea {
    resize: vertical;
    min-height: 150px;
}

.tmpl_form_help {
    font-size: 13px;
    color: #888;
    margin-top: 5px;
}

.tmpl_contact_method {
    background-color: #f8f9fa;
    padding: 25px;
    border-radius: 6px;
    margin-top: 30px;
}

.tmpl_contact_method h4 {
    font-size: 16px;
    color: #333;
    margin-bottom: 15px;
    font-weight: 500;
}

.tmpl_radio_group {
    display: flex;
    flex-wrap: wrap;
    gap: 20px;
}

.tmpl_radio_item {
    display: flex;
    align-items: center;
}

.tmpl_radio_item input[type="radio"] {
    width: auto;
    margin-right: 8px;
}

.tmpl_radio_item label {
    margin-bottom: 0;
    font-weight: 400;
    cursor: pointer;
}

.tmpl_submit_area {
    text-align: center;
    margin-top: 40px;
    padding-top: 30px;
    border-top: 1px solid #e0e0e0;
}

.tmpl_submit_button {
    background: #002060;
    color: white;
    padding: 18px 50px;
    font-size: 18px;
    font-weight: 500;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
}

.tmpl_submit_button:hover {
    background: #001040;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 32, 96, 0.3);
}

/* ===== 資料ダウンロード（shiryo） ===== */
.tmpl_download_section {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_download_heading {
    font-size: 24px;
    color: #333;
    margin-bottom: 30px;
    font-family: 'Noto Serif JP', serif;
    text-align: center;
}

.tmpl_download_card {
    background: white;
    border-radius: 8px;
    padding: 30px 35px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

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

.tmpl_download_list li {
    margin-bottom: 12px;
}

.tmpl_download_list li:last-child {
    margin-bottom: 0;
}

.tmpl_download_link {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #333;
    font-size: 15px;
    padding: 8px 0;
    transition: color 0.3s ease;
}

.tmpl_download_link:hover {
    color: #002060;
    opacity: 1;
}

.tmpl_download_link svg {
    flex-shrink: 0;
    width: 18px;
    height: 18px;
}

.tmpl_download_note {
    background-color: #f0f4fa;
    border-left: 4px solid #002060;
    padding: 20px 25px;
    border-radius: 4px;
    margin-top: 40px;
}

.tmpl_download_note p {
    font-size: 14px;
    color: #555;
    line-height: 1.8;
    margin: 0;
}

.tmpl_download_note a {
    color: #002060;
    text-decoration: underline;
}

/* ===== プライバシーポリシー（privacy） ===== */
.tmpl_policy_container {
    max-width: 800px;
    margin: 0 auto;
}

.tmpl_policy_header {
    margin-bottom: 40px;
    padding-bottom: 30px;
    border-bottom: 1px solid #e0e0e0;
    text-align: center;
}

.tmpl_policy_title {
    font-size: 32px;
    font-weight: 500;
    color: #333;
    font-family: 'Noto Serif JP', serif;
    line-height: 1.4;
    margin-bottom: 15px;
}

.tmpl_policy_updated {
    font-size: 14px;
    color: #666;
}

.tmpl_policy_content {
    font-size: 16px;
    line-height: 1.8;
}

.tmpl_policy_content p {
    margin-bottom: 20px;
}

.tmpl_policy_content h2 {
    font-size: 24px;
    color: #333;
    margin: 40px 0 20px 0;
    font-family: 'Noto Serif JP', serif;
    border-bottom: 2px solid #002060;
    padding-bottom: 10px;
}

.tmpl_policy_content h3 {
    font-size: 20px;
    color: #333;
    margin: 30px 0 15px 0;
    font-family: 'Noto Serif JP', serif;
}

.tmpl_policy_content h4 {
    font-size: 18px;
    color: #333;
    margin: 25px 0 12px 0;
    font-weight: 500;
}

.tmpl_policy_content ul,
.tmpl_policy_content ol {
    margin: 20px 0;
    padding-left: 30px;
}

.tmpl_policy_content li {
    margin-bottom: 8px;
}

.tmpl_important_note {
    background-color: #f8f9fa;
    border-left: 4px solid #002060;
    padding: 20px;
    margin: 30px 0;
    border-radius: 0 4px 4px 0;
}

.tmpl_important_note p {
    margin-bottom: 10px;
}

.tmpl_important_note p:last-child {
    margin-bottom: 0;
}

.tmpl_contact_info {
    background-color: #f8f9fa;
    padding: 25px;
    border-radius: 8px;
    margin: 30px 0;
}

.tmpl_contact_info h4 {
    color: #002060;
    margin-bottom: 15px;
}

/* ===== レスポンシブ ===== */
@media screen and (max-width: 992px) {
    .tmpl_overview_content {
        flex-direction: column;
        gap: 40px;
    }

    .tmpl_overview_images {
        flex: 0 0 100%;
    }

    .tmpl_history_item {
        flex-direction: column;
    }

    .tmpl_history_year {
        margin-right: 0;
        margin-bottom: 15px;
    }

    .tmpl_products_grid {
        grid-template-columns: 1fr;
        gap: 30px;
    }

    .tmpl_products_grid.wp-block-columns > .wp-block-column {
        flex: 1 1 100%;
    }

    .tmpl_members_grid {
        grid-template-columns: repeat(2, 1fr);
        gap: 25px;
    }

    .tmpl_recruitment_benefits {
        grid-template-columns: 1fr;
        gap: 20px;
    }

    .tmpl_form_row.half {
        grid-template-columns: 1fr;
    }

    .tmpl_form_row.half .tmpl_form_group {
        margin-bottom: 30px;
    }

    .tmpl_contact_form {
        padding: 35px;
    }

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

@media screen and (max-width: 768px) {
    /* about 3列写真 → 1列 */
    .tmpl_overview_three_photos {
        grid-template-columns: 1fr;
    }

    /* ニュース */
    .tmpl_news_item {
        flex-direction: column;
        align-items: flex-start;
        gap: 8px;
    }

    .tmpl_news_title {
        margin-left: 0;
    }

    /* 記事詳細 */
    .tmpl_article_title {
        font-size: 24px;
    }

    .tmpl_article_content {
        font-size: 15px;
    }

    .tmpl_article_content h2 {
        font-size: 20px;
    }

    .tmpl_article_content h3 {
        font-size: 18px;
    }

    .tmpl_article_image {
        height: 200px;
    }

    /* 製品詳細 */
    .tmpl_product_title {
        font-size: 24px;
    }

    .tmpl_product_content {
        font-size: 15px;
    }

    .tmpl_product_content h2 {
        font-size: 20px;
    }

    .tmpl_product_content h3 {
        font-size: 18px;
    }

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

    .tmpl_image_grid.cols-3 {
        grid-template-columns: 1fr;
    }

    .tmpl_product_content > .tmpl_product_image {
        max-width: 100%;
    }

    .tmpl_video_wrapper {
        width: 100%;
        padding-bottom: 56.25%;
    }

    .tmpl_product_gallery img {
        flex: 1 1 100%;
        max-width: 100%;
    }

    .tmpl_photo_pair {
        flex-direction: column;
        gap: 15px;
    }

    .tmpl_photo_row {
        flex-direction: column;
        gap: 12px;
    }

    .tmpl_diagram_row {
        flex-direction: column;
        gap: 15px;
    }

    .tmpl_image_grid_portrait {
        grid-template-columns: repeat(3, 1fr);
    }

    /* pro_list */
    .tmpl_product_card .tmpl_product_content {
        padding: 25px;
    }

    /* members */
    .tmpl_members_grid {
        grid-template-columns: 1fr;
    }

    /* form */
    .tmpl_contact_form {
        padding: 25px;
    }

    /* download */
    .tmpl_download_card {
        padding: 20px 22px;
    }

    /* privacy */
    .tmpl_policy_title {
        font-size: 24px;
    }

    .tmpl_policy_content {
        font-size: 15px;
    }

    .tmpl_policy_content h2 {
        font-size: 20px;
    }

    .tmpl_policy_content h3 {
        font-size: 18px;
    }

    .tmpl_important_note {
        padding: 15px;
    }

    .tmpl_contact_info {
        padding: 20px;
    }
}

/* ===== 印刷対応（橋梁土工化） ===== */
@media print {
    .tmpl_photo_pair, .tmpl_photo_single, .tmpl_photo_row,
    .tmpl_diagram_section, .tmpl_diagram_row,
    .tmpl_highlight_box, .tmpl_citation_box {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    .tmpl_product_content h2, .tmpl_product_content h3 {
        break-after: avoid;
        page-break-after: avoid;
    }

    .tmpl_product_content p {
        orphans: 3;
        widows: 3;
    }

    .tmpl_photo_pair .tmpl_photo_item,
    .tmpl_photo_row .tmpl_photo_item {
        break-inside: avoid;
        page-break-inside: avoid;
    }

    img {
        break-inside: avoid;
        page-break-inside: avoid;
        max-width: 100% !important;
    }

    #header-placeholder, #footer-placeholder,
    .tmpl_breadcrumb, .tmpl_back_button {
        display: none;
    }

    .sec_tmpl_block {
        padding: 20px 0;
    }
}

/* =================================================================
   CF7 スタイル調整
   この内容を parts.css の末尾にコピペしてください
   ================================================================= */

/* CF7フォーム要素の基本スタイル */
.tmpl_contact_form .wpcf7-form-control:not([type="submit"]):not([type="radio"]):not([type="checkbox"]) {
    width: 100%;
    padding: 15px;
    border: 2px solid #e0e0e0;
    border-radius: 4px;
    font-size: 16px;
    font-family: 'Noto Sans JP', sans-serif;
    transition: all 0.3s ease;
    background-color: #fff;
}

.tmpl_contact_form .wpcf7-form-control:focus {
    outline: none;
    border-color: #002060;
    box-shadow: 0 0 0 3px rgba(0, 32, 96, 0.1);
}

.tmpl_contact_form textarea.wpcf7-form-control {
    resize: vertical;
    min-height: 150px;
}

.tmpl_contact_form select.wpcf7-form-control {
    appearance: auto;
}

/* ラジオボタン */
.tmpl_radio_group .wpcf7-list-item {
    display: inline-flex;
    align-items: center;
    margin-right: 20px;
}

.tmpl_radio_group .wpcf7-list-item input[type="radio"] {
    width: auto;
    margin-right: 8px;
    padding: 0;
    border: none;
}

.tmpl_radio_group .wpcf7-list-item-label {
    font-weight: 400;
    cursor: pointer;
}

/* バリデーションエラー */
.tmpl_contact_form .wpcf7-not-valid {
    border-color: #e53e3e !important;
}

.tmpl_contact_form .wpcf7-not-valid-tip {
    color: #e53e3e;
    font-size: 13px;
    margin-top: 5px;
    display: block;
}

/* 送信メッセージ（成功） */
.tmpl_contact_form .wpcf7-response-output {
    margin: 20px 0 0;
    padding: 15px 20px;
    border-radius: 6px;
    font-size: 14px;
    line-height: 1.7;
}

.tmpl_contact_form form.sent .wpcf7-response-output {
    background-color: #f0fdf4;
    border: 1px solid #86efac;
    color: #166534;
}

/* 送信メッセージ（失敗） */
.tmpl_contact_form form.failed .wpcf7-response-output,
.tmpl_contact_form form.aborted .wpcf7-response-output {
    background-color: #fef2f2;
    border: 1px solid #fecaca;
    color: #991b1b;
}

/* バリデーションエラー全体 */
.tmpl_contact_form form.invalid .wpcf7-response-output,
.tmpl_contact_form form.unaccepted .wpcf7-response-output {
    background-color: #fffbeb;
    border: 1px solid #fde68a;
    color: #92400e;
}

/* スピナー */
.tmpl_contact_form .wpcf7-spinner {
    display: block;
    margin: 15px auto 0;
}

/* プライバシーチェック */
.tmpl_privacy_check {
    margin-top: 30px;
    padding: 20px 25px;
    background-color: #f8f9fa;
    border-radius: 6px;
    text-align: center;
}

.tmpl_privacy_check label {
    font-size: 15px;
    cursor: pointer;
}

.tmpl_privacy_check .wpcf7-list-item {
    margin: 0;
}

.tmpl_privacy_check input[type="checkbox"] {
    width: auto;
    margin-right: 8px;
    border: none;
    padding: 0;
}

.tmpl_privacy_check a {
    color: #002060;
    text-decoration: underline;
}

/* 送信ボタン */
.tmpl_contact_form input.tmpl_submit_button[type="submit"] {
    background: #002060;
    color: white;
    padding: 18px 50px;
    font-size: 18px;
    font-weight: 500;
    border: none;
    border-radius: 4px;
    cursor: pointer;
    transition: all 0.3s ease;
    width: auto;
}

.tmpl_contact_form input.tmpl_submit_button[type="submit"]:hover {
    background: #001040;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 32, 96, 0.3);
}

/* 同意前はボタンを薄く */
.tmpl_contact_form input.tmpl_submit_button[type="submit"][disabled] {
    opacity: 0.4;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
}

/* reCAPTCHA v3 バッジ非表示 */
.grecaptcha-badge {
    visibility: hidden !important;
}

@media screen and (max-width: 768px) {
    .tmpl_radio_group .wpcf7-list-item {
        display: flex;
        margin-right: 0;
        margin-bottom: 10px;
    }
}
/* =================================================================
   送信ボタン状態制御（contact.js と連動）
   この内容を parts.css の CF7スタイル部分に追加してください
   ================================================================= */

/* 初期状態（グレー・押せない風） */
.tmpl_contact_form input.tmpl_submit_button.is-disabled[type="submit"] {
    background: #999;
    opacity: 0.6;
    cursor: not-allowed;
    transform: none;
    box-shadow: none;
    pointer-events: none;
}

/* アクティブ状態（ネイビー・押せる） */
.tmpl_contact_form input.tmpl_submit_button.is-active[type="submit"] {
    background: #002060;
    opacity: 1;
    cursor: pointer;
    pointer-events: auto;
}

.tmpl_contact_form input.tmpl_submit_button.is-active[type="submit"]:hover {
    background: #001040;
    transform: translateY(-2px);
    box-shadow: 0 4px 15px rgba(0, 32, 96, 0.3);
}





/* =================================================================
   Gutenberg互換スタイル
   ================================================================= */

/* ★ WordPress 6.x ブロックレイアウトの無効化 */
.wp-block-group.sec_tmpl_block,
.wp-block-group.tmpl_inner {
    --wp--style--block-gap: 0px;
}
.wp-block-group.sec_tmpl_block.is-layout-constrained > *,
.wp-block-group.sec_tmpl_block.is-layout-flow > *,
.wp-block-group.tmpl_inner.is-layout-constrained > *,
.wp-block-group.tmpl_inner.is-layout-flow > * {
    max-width: none !important;
    margin-left: 0 !important;
    margin-right: 0 !important;
}

/* 段落マージン（WordPress本体のリセットより強い指定） */
.wp-block-group p,
.wp-block-group .wp-block-paragraph,
.sec_tmpl_block p,
.tmpl_inner p,
.tmpl_product_content p,
.tmpl_product_container p,
.tmpl_overview_text p,
.tmpl_article_content p,
.tmpl_policy_content p {
    margin-top: 0 !important;
    margin-bottom: 20px !important;
    font-size: 16px;
    line-height: 1.8;
}

/* ブロックギャップ上書き（WordPress本体が margin-block-start を付けるのを打ち消す） */
.wp-block-group.sec_tmpl_block > * + *,
.wp-block-group.tmpl_inner > * + * {
    margin-block-start: 0 !important;
}

/* ボタン */
.wp-block-buttons .wp-block-button .wp-block-button__link,
.wp-block-buttons .wp-block-button .wp-element-button {
    background: #002060;
    color: white;
    padding: 15px 30px;
    border-radius: 0;
    font-weight: 500;
    font-size: 16px;
    border: none;
    display: inline-block;
    text-decoration: none;
    transition: all 0.3s ease;
}

.wp-block-buttons .wp-block-button .wp-block-button__link:hover,
.wp-block-buttons .wp-block-button .wp-element-button:hover {
    background: #001040;
    color: white;
    opacity: 1;
}

/* セクション背景 */
.wp-block-group.tmpl_overview { background-color: #f8f8f8; }
.wp-block-group.tmpl_publications { background-color: #fff; }
.wp-block-group.tmpl_history { background-color: #f8f8f8; }
.wp-block-group.tmpl_organization { background-color: #fff; }
.wp-block-group.tmpl_contact_cta { background-color: #e6ebf5; text-align: center; }
.wp-block-group.tmpl_cta_section {
    background: linear-gradient(135deg, #002060 0%, #1565c0 100%);
    color: white;
    text-align: center;
}
.wp-block-group.tmpl_cta_section h2,
.wp-block-group.tmpl_cta_section p { color: white; }

/* セクション＋内部ラッパー */
.wp-block-group.sec_tmpl_block { padding: 80px 0; }
.wp-block-group.tmpl_inner {
    width: 100%;
    max-width: 1400px;
    margin: 0 auto;
    padding: 0 80px;
}

/* セクションタイトル */
h2.wp-block-heading.tmpl_section_title,
.wp-block-heading.tmpl_section_title {
    font-size: 28px;
    font-weight: 500;
    color: #555;
    margin-bottom: 50px !important;
    font-family: 'Noto Serif JP', serif;
}

.wp-block-heading.tmpl_section_title:before {
    content: "◇";
    color: #777;
    margin-right: 15px;
    font-size: 16px;
}

/* 製品詳細の見出し */
.tmpl_product_content h2.wp-block-heading {
    font-size: 24px;
    color: #333;
    margin: 40px 0 20px 0 !important;
    border-bottom: 2px solid #002060;
    padding-bottom: 10px;
    font-family: 'Noto Serif JP', serif;
}
.tmpl_product_content h3.wp-block-heading {
    font-size: 20px;
    color: #333;
    margin: 30px 0 15px 0 !important;
    font-family: 'Noto Serif JP', serif;
}

/* 画像ブロック */
.wp-block-image { margin: 20px 0; }
.wp-block-image img { max-width: 100%; height: auto; border-radius: 4px; }

/* Gutenberg内部レイアウトの上書き */
.wp-block-group > .wp-block-group__inner-container {
    max-width: none;
    padding: 0;
}

@media screen and (max-width: 1200px) { .wp-block-group.tmpl_inner { padding: 0 50px; } }
@media screen and (max-width: 992px)  { .wp-block-group.tmpl_inner { padding: 0 40px; } }
@media screen and (max-width: 768px)  {
    .wp-block-group.tmpl_inner { padding: 0 20px; }
    .wp-block-group.sec_tmpl_block { padding: 50px 0; }
    .wp-block-heading.tmpl_section_title { font-size: 24px; margin-bottom: 35px !important; }
}

/* 送信完了ページ */
.tmpl_thanks_icon {
    font-size: 48px !important;
    text-align: center;
    color: #002060;
    margin-bottom: 20px !important;
}

/* ===== Gutenberg カード画像の高さ統一 ===== */
.tmpl_product_card .wp-block-image,
.tmpl_product_card .wp-block-image.tmpl_product_image {
    margin: 0 !important;
}

.tmpl_product_card .wp-block-image img,
.tmpl_product_card .wp-block-image.tmpl_product_image img {
    width: 100%;
    height: 200px;
    object-fit: cover;
    border-radius: 0 !important;
    display: block;
}

/* カード内のコンテンツ余白 */
.tmpl_product_card .tmpl_product_content {
    padding: 25px;
}

/* ===== Gutenberg: 沿革タイムライン（wp:columns版） ===== */
.wp-block-columns.tmpl_history_item {
    margin-top: 0 !important;
    margin-bottom: 0 !important;
    padding: 20px 0;
    border-bottom: 1px solid #e0e0e0;
    flex-wrap: nowrap !important;
    align-items: center !important;
    gap: 25px !important;
}

.wp-block-columns.tmpl_history_item:last-of-type {
    border-bottom: none;
    padding-bottom: 0;
}

.wp-block-column.tmpl_history_year {
    min-width: 100px !important;
    max-width: 120px !important;
    flex-grow: 0 !important;
    flex-basis: 120px !important;
    font-size: 14px;
    font-weight: 700;
    color: #fff;
    background-color: #002060;
    padding: 8px 15px !important;
    text-align: center;
    margin: 0 !important;
}

.wp-block-column.tmpl_history_year p {
    color: white !important;
    margin: 0 !important;
    padding: 0 !important;
    font-weight: 700;
    line-height: 1.4;
}

.wp-block-column.tmpl_history_content {
    flex: 1 !important;
    padding: 0 !important;
    margin: 0 !important;
}

.wp-block-column.tmpl_history_content h3 {
    font-size: 18px;
    color: #333;
    font-weight: 500;
    font-family: 'Noto Serif JP', serif;
    margin: 0 !important;
    padding: 0 !important;
}

@media screen and (max-width: 768px) {
    .wp-block-columns.tmpl_history_item {
        flex-direction: column !important;
        align-items: flex-start !important;
    }
}


/* ファイルブロックのダウンロードボタンを非表示 */
.tmpl_download_section .wp-block-file__button,
.sec_download .wp-block-file__button {
    display: none !important;
}

/* TOPページのダウンロードセクション - カード風 */
.sec_download .wp-block-file {
    background: #fff;
    padding: 15px 20px;
    margin-bottom: 2px !important;
}

.sec_download .wp-block-file:first-of-type {
    border-radius: 8px 8px 0 0;
}

.sec_download .wp-block-file:last-of-type {
    border-radius: 0 0 8px 8px;
    border-bottom: none;
}

/* ===== Gutenberg: ギャラリー後のボタン間隔 ===== */
.wp-block-gallery + .wp-block-buttons,
.wp-block-image + .wp-block-buttons {
    margin-top: 30px !important;
}

/* ===== Gutenberg: 引用ボックス ===== */
.wp-block-group.tmpl_citation_box {
    background-color: #f8f9fa;
    border: 1px solid #e0e0e0;
    padding: 15px 20px;
    margin: 25px 0;
    font-size: 14px;
    color: #555;
    line-height: 1.6;
}

.wp-block-group.tmpl_citation_box p {
    margin: 0 !important;
}

/* ===== Gutenberg: 学会発表 ===== */
.wp-block-group.tmpl_publication_item {
    padding: 20px 25px;
    background-color: #f8f8f8;
    margin-bottom: 15px;
    border-left: 3px solid #002060;
}

.wp-block-group.tmpl_publication_item h4 {
    margin: 0 0 8px 0 !important;
}

/* ===== Gutenberg: ダウンロードリスト（元デザイン準拠） ===== */
/* 下層ページ */
.wp-block-group.tmpl_download_card {
    background: white;
    border-radius: 8px;
    padding: 30px 35px;
    box-shadow: 0 4px 15px rgba(0, 0, 0, 0.08);
}

.tmpl_download_card .tmpl_download_list,
.sec_download_category .sec_download_list {
    list-style: none !important;
    padding: 0 !important;
    margin: 0 !important;
}

.tmpl_download_card .tmpl_download_list li,
.sec_download_category .sec_download_list li {
    margin-bottom: 12px;
}

.tmpl_download_card .tmpl_download_list li:last-child,
.sec_download_category .sec_download_list li:last-child {
    margin-bottom: 0;
}

.tmpl_download_card .tmpl_download_list li a,
.sec_download_category .sec_download_list li a {
    display: inline-flex;
    align-items: center;
    gap: 8px;
    color: #333;
    font-size: 15px;
    padding: 8px 0;
    transition: color 0.3s ease;
    text-decoration: none;
}

.tmpl_download_card .tmpl_download_list li a:hover,
.sec_download_category .sec_download_list li a:hover {
    color: #002060;
    opacity: 1;
}

/* SVGアイコンの代わりにCSS疑似要素でダウンロードアイコン */
.tmpl_download_card .tmpl_download_list li a:before,
.sec_download_category .sec_download_list li a:before {
    content: "";
    display: inline-block;
    width: 18px;
    height: 18px;
    flex-shrink: 0;
    background-image: url("data:image/svg+xml,%3Csvg viewBox='0 0 24 24' fill='none' stroke='%23002060' stroke-width='2' stroke-linecap='round' stroke-linejoin='round' xmlns='http://www.w3.org/2000/svg'%3E%3Cpath d='M21 15v4a2 2 0 0 1-2 2H5a2 2 0 0 1-2-2v-4'/%3E%3Cpolyline points='7 10 12 15 17 10'/%3E%3Cline x1='12' y1='15' x2='12' y2='3'/%3E%3C/svg%3E");
    background-size: contain;
    background-repeat: no-repeat;
}

.wp-block-group.tmpl_download_note {
    background-color: #f0f4fa;
    border-left: 4px solid #002060;
    padding: 20px 25px;
    border-radius: 4px;
    margin-top: 40px;
}

.wp-block-group.tmpl_download_note p {
    font-size: 14px;
    color: #555;
    line-height: 1.8;
    margin: 0 !important;
}

/* ファイルブロック（残っている場合のフォールバック） */
.tmpl_download_section .wp-block-file__button,
.sec_download .wp-block-file__button {
    display: none !important;
}

@media screen and (max-width: 768px) {
    .wp-block-group.tmpl_download_card {
        padding: 20px 22px;
    }
}

/* ===== Gutenberg: スマホ対応強化 ===== */
@media screen and (max-width: 768px) {
    /* 全Gutenbergカラムを縦並び */
    .wp-block-columns {
        flex-direction: column !important;
    }

    .wp-block-columns > .wp-block-column {
        flex-basis: 100% !important;
        width: 100% !important;
    }

    /* 製品詳細 */
    .tmpl_product_title,
    h1.tmpl_product_title {
        font-size: 24px !important;
    }

    .tmpl_product_content h2,
    .tmpl_product_content h2.wp-block-heading {
        font-size: 20px !important;
    }

    .tmpl_product_content h3,
    .tmpl_product_content h3.wp-block-heading {
        font-size: 17px !important;
    }

    /* ギャラリー */
    .wp-block-gallery.has-nested-images {
        gap: 10px !important;
    }

    .wp-block-gallery.has-nested-images.columns-3 {
        columns: 1 !important;
    }

    .wp-block-gallery.has-nested-images.columns-3 .wp-block-image {
        width: 100% !important;
    }

    /* 製品カード一覧 */
    .wp-block-columns.tmpl_products_grid {
        flex-direction: column !important;
        gap: 20px !important;
    }

    .tmpl_product_card .wp-block-image img {
        height: 180px !important;
    }

    /* 沿革 */
    .wp-block-columns.tmpl_history_item {
        flex-direction: column !important;
        align-items: flex-start !important;
        gap: 10px !important;
        padding: 15px 0;
    }

    .wp-block-column.tmpl_history_year {
        max-width: none !important;
    }

    /* ダウンロード */
    .wp-block-group.tmpl_download_card {
        padding: 18px 15px;
    }

    .tmpl_download_card .tmpl_download_list li a {
        font-size: 13px;
    }

    /* お問い合わせ */
    .wp-block-group.tmpl_form_container {
        padding: 0 !important;
    }

    /* プライバシー */
    .wp-block-group.tmpl_policy_container h2 {
        font-size: 20px !important;
    }

    /* 送信完了 */
    .tmpl_thanks_icon {
        font-size: 36px !important;
    }
}

@media screen and (max-width: 480px) {
    .wp-block-group.tmpl_inner {
        padding: 0 15px !important;
    }

    .wp-block-group.sec_tmpl_block {
        padding: 35px 0 !important;
    }
}

/* ===== sec_downloadの幅制限（WordPress is-layout対策） ===== */
.wp-block-group.sec_tmpl_block.sec_download > .wp-block-group.tmpl_inner,
.wp-block-group.sec_download > .wp-block-group.tmpl_inner,
body .sec_download .wp-block-group.tmpl_inner {
    max-width: 800px !important;
    padding-left: 30px !important;
    padding-right: 30px !important;
    margin-left: auto !important;
    margin-right: auto !important;
}
